导出到Excel使用libxlsxwriter在iOS中失败

有没有人使用libxlsxwriter将数据导出到iOS中的Excel? 我把这个库启动并运行。 下面给出的是我试过的代码。

lxw_workbook *workbook = new_workbook("demo.xlsx"); lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL); int ret = worksheet_write_string(worksheet, 0, 0, "Hello", NULL); ret = worksheet_write_number(worksheet, 1, 0, 123, NULL); int ret1 = workbook_close(workbook); if(LXW_CLOSE_ERROR_ZIP == ret1) NSLog(@"Failed"); 

在workbook_close()方面,我一直在失败。

这是我得到的错误信息

 [ERROR][/path/packager.c:62]: Error opening zip file for xlsx [ERROR][/path/workbook.c:1108]: Memory allocation failed. 

任何想法为什么发生这种情况? 有没有其他的图书馆可以使用?

还有一点需要注意的是,您应该使用可以被C理解的string编码来调用libxlsxwriter函数。直到我将调用中的所有string转换为UTF8string之前,我都得到了这个错误。

在你的情况下,你创build工作簿并写入string的调用将变成:

 lxw_workbook *workbook = new_workbook(("demo.xlsx" as NSString).UTF8String); ... int ret = worksheet_write_string(worksheet, 0, 0, ("Hello" as NSString).UTF8String, NULL); 

这些错误是误导。 通常在输出文件或目录不可写入时生成它们。

例如:

 cd libxlsxwriter make examples ./examples/hello # Creates hello_world.xlsx chmod -w hello_world.xlsx ./examples/hello [ERROR][packager.c:62]: Error opening zip file for xlsx [ERROR][workbook.c:1108]: Memory allocation failed. 

我会看看如果我可以添加一个修复库,使错误的实际来源更清晰。

更新 :在新版本中,错误更加清晰:

 $ ./examples/hello [ERROR] workbook_close(): Error creating 'hello_world.xlsx'. Error = Permission denied