在Cocoa中创buildExcel(.xlsx)文件

我正在编写一个Cocoa应用程序,我试图导出为Excel XML格式(ISO / IEC 29500-1),它基本上是一个带有一堆XML文件的压缩文件,以.xlsx扩展名命名。

我已经尝试生成AppleScript并使用NSAppleScript创buildExcel文件,该文件可以正常工作,但速度很慢,用户必须在其计算机上安装Excel。

我能够创build一个简单的.xlsx Excel文件,方法是将XML写入Objective C中的文件,然后将其压缩并重命名为.xlsx 。 Excel可以打开文件,但数字试图打开我创build的文件时发生错误。 看来Excel必须实现所有(或大部分)ISO / IEC规范,而Numbers只能打开Excel风格的版本。

如何使用Cocoa和Objective-C创build工作的Excel文件?

如何在Excel文件中封装HTML表格? 我已经检查过这个工作,我可以用Excel打开它。

 NSURL * documentsDirectory = [NSFileManager.defaultManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask].lastObject; NSURL *file = [documentsDirectory URLByAppendingPathComponent:@"contacts.xls"]; NSString* string = @"<table><tr><td>FOO</td><td>BAR</td></tr></table>"; [string writeToFile:file.path atomically:YES encoding:NSUTF8StringEncoding error:nil]; 

我已经使用OpenOffice API ,它工作得很好。 我build议你使用它来创build你的Excel文件。 如果您没有足够的时间/耐心来解决这个问题,一个解决方法可能是有两个链接来导出文件,XLSX版本针对世界的Excels,然后是Numbers应用程序的一个单独导出的CSV文件。

维基百科提供了一些链接到图书馆 ,这可能会给你一个良好的开端。

如果Office Open XML格式不是必需的,并且不需要导出过于复杂的文件,我还build议检查将文件保存为Excel也可以读取的样式表格式HTML。 学习如何格式化电子表格所需的HTML的简单方法是在Excel中创build文件,并将其保存为HTML。