2014-12-05 53 views
0

我想创建Objective-C中的标准电子表格文件,这些文件也可以在ipad中打开,而不使用付费库(如LibXL)。如何在不使用LibXL的情况下以编程方式创建标准电子表格文件?

我已经创建HTML表格和简单地创建了一个.xls文件使用下面的代码(string1包含HTML表格):

NSURL * documentPath = [NSFileManager.defaultManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask].lastObject;  
NSURL *filePath1 = [documentPath URLByAppendingPathComponent:@"FileName.xls"]; 

[string1 writeToFile:filePath1.path atomically:YES encoding:NSUTF8StringEncoding error:nil]; 

该文件在MS Excel中打开没有问题,但无法在iPad上打开。那么它的解决方案是什么?

+0

请重新排列你的单词,再添加几个以获得更好的主意。 – blackSmith 2014-12-05 06:41:40

+0

请再次检查问题... – 2014-12-05 06:48:29

+0

一个简单的解决方案是将文件以CSV格式保存,可以通过数字和Excel读取。然而,这种方法在格式化方面失败了。另一个答案是像你在你的问题中提到的那样使用像LibXL这样的库。 – 2014-12-05 11:03:46

回答

0

确定CSV非常简单。它代表逗号分隔值,就是这个意思。

例如,如果你想要的人列名,日期的表格,你会做这样的事情:

NSMutableString *csvString = [[NSMutableString alloc] initWithString:@"Name,Date\n"];//The \n character means new row 
for (Person *p in array) { 
    //This is an arbitrary class/array 
    [csvString appendFormat:@"%@,%@\n", p.name, p.date] 
} 

NSString *path = //File path ending in myFile.csv 
NSError *error = nil; 
BOOL success = [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error] 
if (!success) { 
    NSLog(@"An error occurred: %@", error.localizedDescription); 
} 
else { 
    NSLog(@"File written successfully to path: %@", path); 
} 

这个文件可以被大多数的数字运算应用e.t.c但缺少格式读取。

+0

如果我想添加的单元格已经有逗号分隔的实体,我想在单元格中怎么办?例如..我想要老虎,狮子,大象这三个逗号分隔单词上的单词。 – 2014-12-08 05:17:07

+0

你可以在“老虎,狮子,大象”或“老虎,狮子,大象”中围绕这些,我不太清楚哪些是可能的。你必须试验一下。查找所有CSV语法的最简单方法是在Numbers中制作复杂的电子表格并将其导出到CSV,然后在文本编辑中查看它。 – 2014-12-08 09:45:17