导出后的csv文件中的数据

时间:2014-01-29 13:51:54

标签: ios objective-c

我遇到导出到csv文件的数据有问题。 它涉及带重音字符的数据。类型数据是字符串。 在我的文件中我有这个:

Téléphones et internet;    Abonnement iPad;    13,90 €;     Débit

我想:

Téléphones et internet;  Abonnement iPad;    13,90€  Débit

应该使用什么代码来执行此操作? 谢谢。

编辑:我的代码

NSMutableString *writeString = [NSMutableString string];

        for (id object in [[self fetchedResultsController] fetchedObjects]) {

            NSString * object1 = [[object valueForKey:@"object1Data"] description];
            NSString * object2 = [[object valueForKey:@"object2Data"] description];
            NSString * object3 = [[object valueForKey:@"object3Data"] description];
            NSString * object4 = [[object valueForKey:@"object4Data"] description];;

            [writeString appendString:[NSString stringWithFormat:@"%@; %@; %@; %@\n",    object1, object2, object3, object4]];
        }

NSArray  *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString* savePath = [paths objectAtIndex:0];
        savePath = [savePath stringByAppendingPathComponent:@"objectData.csv"];
        [writeString writeToFile:savePath atomically:YES encoding:NSUTF8StringEncoding  error:NULL];

EDIT2:观看我使用他的:

        QLPreviewController *previewController=[[QLPreviewController alloc]init];
        previewController.delegate=self;
        previewController.dataSource=self;
        [self presentViewController:previewController animated:YES completion:nil];
        [previewController.navigationItem setRightBarButtonItem:nil];

- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller  previewItemAtIndex:(NSInteger)index
{
    NSArray  *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,   NSUserDomainMask, YES);
    NSString* savePath = [paths objectAtIndex:0];
    savePath = [savePath stringByAppendingPathComponent:@"objectData.csv"];

    return [NSURL fileURLWithPath:savePath];

}

- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller
{
   return 1;
}

2 个答案:

答案 0 :(得分:1)

您的输出看起来可能是正确的,问题似乎与您查看它的方式有关。

您是将其导入Excel还是其他什么?根据我的经验,Excel的CSV导入非常差,并且它不会自动检测传入的UTF-8数据。

答案 1 :(得分:0)

这可能是导致问题的编码。

作为旁注,它是CSV =逗号分隔值。你不是把逗号放在......?

变化:

[writeString appendString:[NSString stringWithFormat:@"%@; %@; %@; %@\n",    object1, object2, object3, object4]];

要:

[writeString appendString:[NSString stringWithFormat:@"%@;, %@;, %@;, %@\n",    object1, object2, object3, object4]];

在excel中打开时,这将使值显示在单独的列中,除非您想要在1列中全部...?