Итак, я создал кредитный калькулятор, который генерирует кучу информации плюс таблицу амортизации.Я хочу добавить функцию для создания таблицы амортизации в Excel.
Поэтому я планирую использовать кнопку для открытия Excel, используя файл ресурсов Excel, который есть в моем проекте.
Я использую этот модуль для записи в файл Excel
https://cocoapods.org/pods/XlsxReaderWriter
Я следовал этому руководству, и все, кажется, работает нормально.
https://github.com/joelparkerhenderson/demo_swift_excel_xlsx_reader_writer
Я полагаю, что проблема заключается в строках кода, которые открывают файл Excel
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if indexPath.section == 3
{
if indexPath.row == 0
{
let path: String = Bundle.main.path(forResource: "AmortizationTable", ofType: "xlsx")!
let urlString: String = "ofe|u|" + path
let encodedString = urlString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let encodedURLString = "ms-excel:" + encodedString! //+ "|n|AmortizationTable.xlsx|a|App"
if let url = URL(string: encodedURLString), UIApplication.shared.canOpenURL(url) {
UIApplication.shared.openURL(url)
} else if let itunesUrl = NSURL(string: "https://itunes.apple.com/us/app/microsoft-excel/id586683407?mt=8&uo=4"), UIApplication.shared.canOpenURL(itunesUrl as URL) {
UIApplication.shared.openURL(itunesUrl as URL)
}
}
}
}
У меня также есть эта функция, которая вызывается при вычислениях пользователя.Он работает нормально, но я подумал, что должен добавить его.
func createExcel() {
// Set the path to the path of wherever you put your Excel file.
// The path in this demo code is the path to the demo.xlsx file.
let path: String = Bundle.main.path(forResource: "AmortizationTable", 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.
let spreadsheet: BRAOfficeDocumentPackage = BRAOfficeDocumentPackage.open(path)
let sheet: BRASheet = spreadsheet.workbook.sheets[0] as! BRASheet
let worksheet: BRAWorksheet = spreadsheet.workbook.worksheets[0] as! BRAWorksheet
let cell: BRACell = worksheet.cell(forCellReference: "A1")
cell.value = "It's working!"
spreadsheet.save()
// Print some info to show the code works.
print(cell.value) // print "It's working"
print(cell.stringValue()) // print "Alpha"
}
Когда я нажму кнопку, он перейдет в приложение Excel, и я получу эту ошибку:
![Excel Error](https://i.stack.imgur.com/ftwFX.png)