19

我正在编写一个 Cocoa 应用程序,并尝试导出为 Excel XML 格式(ISO/IEC 29500-1),它基本上是一个 zip 文件,其中包含一堆以.xlsx扩展名命名的 XML 文件。

我尝试生成 AppleScript 并使用NSAppleScript它来创建 Excel 文件,该文件可以工作,但速度很慢,用户必须在他们的机器上安装 Excel。

通过将 XML 写入 Objective C 中的文件并将它们压缩并将 zip 重命名为 .xlsx Excel 文件,我能够创建一个简单的 .xlsx Excel 文件.xlsx。Excel 可以打开该文件,但 Numbers 尝试打开我创建的文件时出错。似乎 Excel 必须实现了所有(或大部分)ISO/IEC 规范,而 Numbers 可能只打开 Excel 风格的版本。

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

4

3 回答 3

11

如何将 HTML 表格封装在 Excel 文件中?我已经检查过它是否有效,我可以用 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];
于 2014-02-17T12:56:57.060 回答
3

我使用过OpenOffice API,效果很好。我建议您使用它来创建您的 Excel 文件。如果您没有时间/耐心去做这件事,解决方法可能是有 2 个链接来导出文件,XLSX 版本破解用于世界的 Excel,然后为 Numbers 应用程序单独导出 CSV 文件。

于 2010-08-30T04:08:00.807 回答
2

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

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

于 2010-08-30T02:03:37.897 回答