Я создал проект Xcode, у которого есть электронная таблица внутри папки проекта, и я использую xlsxreaderwriter для подключения к листу Excel.
Мой проект может читать электронную таблицу Excel и обновлять ее во время работы программы. Моя проблема в том, что программа не сохраняет таблицу Excel, связанную с новыми данными. Моя консоль показывает, что она сохраняет, но когда я открываю свой фактический файл электронной таблицы, он выглядит как оригинальная версия, которую я создал.
Ниже приведены две функции, которые я создал, чтобы установить ссылки на ячейки и сохранить данные, которые я поместил в viewDidLoad.
private func getExcelCells() {
let path: String = Bundle.main.path(forResource: "DatabaseV1", ofType: "xlsx")!
//Open the spreadsheet, get get the first worksheet, and select cell B5
let spreadsheet: BRAOfficeDocumentPackage = BRAOfficeDocumentPackage.open(path)
let sheet: BRASheet = spreadsheet.workbook.sheets[0] as! BRASheet
let worksheet: BRAWorksheet = spreadsheet.workbook.worksheets[0] as! BRAWorksheet
// Creates variables that are type CellModel
var cat1 = CellModel(categoryTitle: "Best DJ", firstCell: worksheet.cell(forCellReference: "B5"), secondCell: worksheet.cell(forCellReference: "B6"), thirdCell: worksheet.cell(forCellReference: "B7"), fourthCell: worksheet.cell(forCellReference: "B8"))
let cat2 = CellModel(categoryTitle: "Best SGA", firstCell: worksheet.cell(forCellReference: "E5"), secondCell: worksheet.cell(forCellReference: "E6"), thirdCell: worksheet.cell(forCellReference: "E7"), fourthCell: worksheet.cell(forCellReference: "E8"))
let cat3 = CellModel(categoryTitle: "Best Greek Organization", firstCell: worksheet.cell(forCellReference: "H5"), secondCell: worksheet.cell(forCellReference: "H6"), thirdCell: worksheet.cell(forCellReference: "H7"), fourthCell: worksheet.cell(forCellReference: "H8"))
// Add the variables created above to the array excelCells
excelCells += [cat1, cat2, cat3]
cat1.cellOne.setStringValue(nominees.optionA)
let data = worksheet.cell(forCellReference: "A5").stringValue()
print(cat1.cellOne.stringValue())
print(data)
}
private func saveExcelFile() {
let path: String = Bundle.main.path(forResource: "DatabaseV1", ofType: "xlsx")!
let spreadsheet: BRAOfficeDocumentPackage = BRAOfficeDocumentPackage.open(path)
let sheet: BRASheet = spreadsheet.workbook.sheets[0] as! BRASheet
let worksheet: BRAWorksheet = spreadsheet.workbook.worksheets[0] as! BRAWorksheet
worksheet.save()
spreadsheet.save()
}
Вот результаты, которые я получаю в своей консоли, но снова, когда я открываю электронную таблицу из файлов моего компьютера, она не обновляется.
some("2014-15")
Optional("Nominee 1 ")
Best DJ : Best DJ
Best SGA : Best SGA
Best Greek Organization : Best Greek Organization
TVC Data has nominees 2014-15
2018-05-16 12:51:48.375702-0400 xlsxreaderwriter[18952:668623] Saving target : worksheets/sheet1.xml
2018-05-16 12:51:48.432046-0400 xlsxreaderwriter[18952:668623] Saving target : [Content_Types].xml
2018-05-16 12:51:48.437702-0400 xlsxreaderwriter[18952:668623] Saving target : docProps/app.xml
2018-05-16 12:51:48.440162-0400 xlsxreaderwriter[18952:668623] Saving target : docProps/core.xml
2018-05-16 12:51:48.442317-0400 xlsxreaderwriter[18952:668623] Saving target : styles.xml
2018-05-16 12:51:48.471786-0400 xlsxreaderwriter[18952:668623] Saving target : theme/theme1.xml
2018-05-16 12:51:48.474184-0400 xlsxreaderwriter[18952:668623] Saving target : worksheets/sheet1.xml
2018-05-16 12:51:48.519212-0400 xlsxreaderwriter[18952:668623] Saving target : sharedStrings.xml
2018-05-16 12:51:48.526377-0400 xlsxreaderwriter[18952:668623] Saving target : _rels/workbook.xml.rels
2018-05-16 12:51:48.530246-0400 xlsxreaderwriter[18952:668623] Saving target : xl/workbook.xml
2018-05-16 12:51:48.540307-0400 xlsxreaderwriter[18952:668623] Saving target : _rels/.rels
2014-15 2015-16 2016-17 2017-18