0

在 iphone 应用程序中,我想将 SQLite 数据库文件导出为 CSV 文件。(后来我在邮件中附上了这个文件)

这也是表格格式(或 exel-sheet 格式)

尝试了以下逻辑,但它不像表格格式和列对齐方式的巨大差异。

storedataBaseArray = [数据库选择AllFromDB];

  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 文件:

在此处输入图像描述

任何人都可以建议我如何做到这一点

4

1 回答 1

1

不需要同时使用多个\ts和,s。

您可以像这样简化格式:

    record = [NSString stringWithFormat:@"%@, %@, %@", [ [storedContactsArray objectAtIndex:i] objectForKey"id"] ,  [ [storedContactsArray objectAtIndex:i] objectForKey"title"],  [ [storedContactsArray objectAtIndex:i] objectForKey"Definition"]];

在任何情况下,只有在合适的程序(例如 Excel)中打开生成的文件(并选择正确的导入选项)时,您才会看到正确的对齐方式。文本编辑器通常不会以表格格式显示 CSV 数据。除了文本编辑器显示它的方式之外,文件格式也很好。

于 2012-09-12T10:14:30.907 回答