代码之家  ›  专栏  ›  技术社区  ›  Austin

在Cocoa中创建Excel(.xlsx)文件

  •  19
  • Austin  · 技术社区  · 15 年前

    我正在编写一个Cocoa应用程序,并试图将其导出为Excel XML格式(ISO/IEC 29500-1),该格式基本上是一个zip文件,其中包含一组XML文件,名为 .xlsx 分机。

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

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

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

    3 回复  |  直到 8 年前
        1
  •  11
  •   Ashish Kakkad    8 年前

    在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];
    
        2
  •  3
  •   Andrew T.    8 年前

    我和 OpenOffice API 而且效果很好。我建议你用它来创建你的Excel文件。如果你没有时间/耐心这样做,一个解决办法可能是有两个链接导出文件,XLSX版本的黑客为世界的卓越,然后一个单独的数字应用导出CSV文件。

        3
  •  2
  •   Andrew T.    8 年前

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

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

    推荐文章