在iphone应用程序中,我想将SQLite数据库文件导出为CSV文件。 (后来我用邮件附上这个文件)
也是表格格式(或exel-sheet格式)
我尝试以下逻辑,但它不像表格式和列对齐方面的巨大差异。
storedataBaseArray = [DataBase selectAllFromDB];
NSString *CSVstring=@"SNO \t\t\t Index \t\t\t Definition\n" ;
NSString *CSVPath,*record;;
NSString *temporayCSV= @"" ;
for(int i=0;i<storedataBaseArray.count ;i++)
{
record = [NSString stringWithFormat:@"%@, \t\t\t %@, \t\t\t %@, [ [storedContactsArray objectAtIndex:i] objectForKey"id"] , [ [storedContactsArray objectAtIndex:i] objectForKey"title"], [ [storedContactsArray objectAtIndex:i] objectForKey"Definition"]];
// NSString *role =[storedContactsArray objectAtIndex:i] ;
NSLog(@"%d",i);
temporayCSV = [NSString stringWithFormat:@"%d %@ \n ",(i+1),record];
CSVstring = [CSVstring stringByAppendingFormat:temporayCSV];
NSLog(@"%@",CSVstring);
}
CSVPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.csv", @"CSV_FormatedTable"]];
//add our file to the path
[fileManager createFileAtPath:CSVPath contents:[CSVstring dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
NSData *rolesCSVData =[NSData dataWithContentsOfFile:CSVPath];
[mailpage addAttachmentData:rolesCSVData mimeType:@"text/csv" fileName:@"CSV_FormatedTable.csv"];
数据库文件:
必填格式:
我的输出CSV文件:
任何人都可以建议我如何做到这一点
答案 0 :(得分:1)
无需同时使用多个\t
和,
。
您可以像这样简化格式:
record = [NSString stringWithFormat:@"%@, %@, %@", [ [storedContactsArray objectAtIndex:i] objectForKey"id"] , [ [storedContactsArray objectAtIndex:i] objectForKey"title"], [ [storedContactsArray objectAtIndex:i] objectForKey"Definition"]];
在任何情况下,只有在合适的程序(例如Excel)中打开生成的文件(并选择正确的导入选项)时,才会看到正确的对齐方式。文本编辑器通常不会以表格格式显示CSV数据。 除了文本编辑器显示它的方式,文件格式也没问题。