Xcode - 创建 csv/电子表格文件

Posted

技术标签:

【中文标题】Xcode - 创建 csv/电子表格文件【英文标题】:Xcode - Create csv/spreadsheet file 【发布时间】:2012-09-30 07:55:53 【问题描述】:

我有三个数组。第一个数组包含字符串,与第二个相同,但第三个包含NSNumber's。无论如何,回到主题......我如何创建一个像电子表格一样的 csv(这是一个 excel/数字)文件来包含这些数据。有可能吗?

这是我的三个数组:

locationArray - 包含许多字符串 dateArray - 包含许多字符串 milesArray - 包含许多 NSNumber's

但是每个数组都包含相同数量的对象,因此(例如在表格视图中)您可以将数据拼凑到 NSDictionary 中。它就像一条链子。

那么它看起来像这样:

NSDictionary *firstFlight = [NSDictionary dictionaryWithObjectsAndKeys:[locationArray objectAtIndex: 0], @"FlightName", [dateArray objectAtIndex: 0], @"FlightDate", [milesArray objectAtIndex: 0], @"FlightMiles", nil];

并且该字典将包含一个航班(此测试应用的功能是记录航班)。因此,如果我使用 for 循环枚举此内容并将objectAtIndex: 替换为循环编号,我可以获得许多航班字典。

现在您了解了我的数据结构是如何工作的。例如,我如何创建一个 excel/数字/电子表格 CSV 文件看起来像这样(只是它可能看起来的屏幕截图):

(里程数据只是编造的)

【问题讨论】:

What have you tried? 在创建输出字符串时做什么? 我没有尝试过任何事情,因为我非常不确定如何做到这一点 其实,我打算创建一个单独的不可见表格视图并对其进行截图,但我更喜欢创建 CSV 文件的想法 【参考方案1】: NSArray *firstArray, *secondArray, *thirdArray; NSMutableString *csv = [NSMutableString stringWithString:@"Name,Date,Miles"]; NSUInteger count = [firstArray count]; // provided all arrays are of the same length for (NSUInteger i=0; i<count; i++ ) [csv appendFormat:@"\n\"%@\",%@,\"%d\"", [firstArray objectAtIndex:i], [secondArray objectAtIndex:i], [[thirdArray objectAtIndex:i] integerValue] ]; // instead of integerValue may be used intValue or other, it depends how array was created NSString *yourFileName = @"your filename"; NSError *error; BOOL res = [csv writeToFile:yourFileName atomically:YES encoding:NSUTF8StringEncoding error:&error]; if (!res) NSLog(@"Error %@ while writing to file %@", [error localizedDescription], yourFileName );

【讨论】:

作品绝对精美...不能要求更好的东西

以上是关于Xcode - 创建 csv/电子表格文件的主要内容,如果未能解决你的问题,请参考以下文章

从 CSV 生成 Excel 电子表格(ASP.NET C#)[重复]

Python_csv电子表格

将 Google 电子表格 CSV 导入 Pandas 数据框

如何在用电子表格(),php生成的.csv文件中显示带小数的整数?

在 Python 中将多个 CSV 文件合并到电子表格的单独选项卡中

处理CSV文件