【问题标题】:Creating Excel (.xlsx) files in Cocoa在 Cocoa 中创建 Excel (.xlsx) 文件
【发布时间】:2010-08-27 18:13:25
【问题描述】:

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

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

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

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

【问题讨论】:

标签: objective-c cocoa excel xlsx


【解决方案1】:

将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];

【讨论】:

  • 这不会创建 xls (Excel) 文件。这将创建一个 HTML 片段文件。
  • 这是一个html,不是xls
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    Wikipedia offers some links to libraries,这可能会给你一个好的开始。

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

    【讨论】:

    • 看起来你可以在 Objective-C 中封装 PHP 的 PHPExcel 组件。
    猜你喜欢
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 2017-11-08
    • 2013-10-03
    相关资源
    最近更新 更多