У меня есть лист Excel xlsx, мне нужно записать в него данные и затем прочитать результат после того, как он выполнит вычисления, все через мое приложение
, я пробовал модуль xlsxReaderWriter Pod, но он не выполняет вычислений и не читает результат, вместо этого он читает уже существующее значение ячейки с жестким кодом,
let path: String = Bundle.main.path(forResource: "BCS", ofType: "xlsx")!
// Open the spreadsheet, get the first sheet, first worksheet, and first cell A1.
// This is solely demo code to show basics; your actual code would do much more here.
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
change {
let path: String = Bundle.main.path(forResource: "BCS", ofType: "xlsx")!
let spreadsheet: BRAOfficeDocumentPackage = BRAOfficeDocumentPackage.open(path)
// let sheet: BRASheet = spreadsheet.workbook.sheets[0] as! BRASheet
let worksheet: BRAWorksheet = spreadsheet.workbook.worksheets[2] as! BRAWorksheet
let cell: BRACell = worksheet.cell(forCellReference: "D20")
let cell2: BRACell = worksheet.cell(forCellReference: "E7")
print(cell.stringValue())
print(cell2.stringValue())
}
}
func change(completion: () -> Void) {
let path: String = Bundle.main.path(forResource: "BCS", ofType: "xlsx")!
let spreadsheet: BRAOfficeDocumentPackage = BRAOfficeDocumentPackage.open(path)
let sheet: BRASheet = spreadsheet.workbook.sheets[0] as! BRASheet
let worksheet: BRAWorksheet = spreadsheet.workbook.worksheets[2] as! BRAWorksheet
worksheet.cell(forCellReference: "E7", shouldCreate: true).setStringValue("8000")
spreadsheet.save()
completion()
}
}
фактический результат - это значение ячейки, которое уже существует в таблице Excel, это не обычный ожидаемый результат, который должен быть после выполнения расчетов.