2014-12-05 44 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

相關問題