Ios 从NSMutableArray创建csv
在我的应用程序中,我正在创建一个.plist文件,但我需要使用Excel表格中存储在该.plist中的数据。我需要一种方法来获取这个plist的csv表单。我试图在网上搜索,但我发现只有一个转换器允许从csv创建plist。我想有一种方法可以直接从我的iPad应用程序生成csv文件。有人知道怎么做吗 更新:Ios 从NSMutableArray创建csv,ios,objective-c,csv,plist,Ios,Objective C,Csv,Plist,在我的应用程序中,我正在创建一个.plist文件,但我需要使用Excel表格中存储在该.plist中的数据。我需要一种方法来获取这个plist的csv表单。我试图在网上搜索,但我发现只有一个转换器允许从csv创建plist。我想有一种方法可以直接从我的iPad应用程序生成csv文件。有人知道怎么做吗 更新: + (void)saveFileFromArray:(NSMutableArray *)promoArray { NSMutableString *target = [@"Nome,
+ (void)saveFileFromArray:(NSMutableArray *)promoArray {
NSMutableString *target = [@"Nome,Cognome,E-mail,Data di nascita,Indirizzo,Città,Cap,Telefono\n" mutableCopy];
for (NSDictionary *dict in promoArray) {
[target appendFormat:@"%@,%@,%@,%@,%@,%@,%@,%@\n",dict[@"name"],dict[@"surname"],dict[@"email"],dict[@"birthdate"],dict[@"address"],dict[@"city"],dict[@"zip"],dict[@"phone"]];
}
NSError *error = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"profiles.csv"];
NSURL *url = [NSURL URLWithString:fileName];
BOOL success = [target writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (!success) {
NSLog(@"Errore: %@", error.localizedDescription);
}
}
遍历数组,并将希望的部分写入字符串 在中使用逗号的字符串将非常有用。马车的回报也不错 当字符串完成时。将其写入文件
NSMutableString *target = [@"head1,head2,head3\n" mutableCopy];
for (NSDictionary *dict in array) {
[target appendFormat:@"%@,%@,%@\n",dict[@"thing"],dict[@"otherthing"],dict[@"lemming"]];
}
NSError *error = NULL;
BOOL success = [target writeToURL:somewhere atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (!success) {
NSLog(@"oh no! - %@",error.localizedDescription);
}
该代码段假定您有一个NSDictionary
数组,但如果是其他内容,则原理相同
对于每个对象,打印一个逗号分隔的字符串,并以CR结尾
在真实数据中,您必须注意的是
- 已在中使用逗号的描述
- 已包含CR的描述
偶尔,我不得不添加一两个功能,但考虑到它是开源的,这没什么大不了的。在应用程序中将plist转换为CSV,然后导出文件,这样您就可以在Excel中访问了。。。非常感谢。我刚刚更改了一条指令:
BOOL success=[target writeToURL:somewhere atomicaly:YES encoding:NSUTF8StringEncoding error:&error]
toBOOL success=[target writeToFile:fileName自动:YES编码:NSUTF8StringEncoding错误:&error]代码>现在效果很好!