繁体   English   中英

导出后的csv文件中的数据

[英]Data in csv file after export

导出到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;
}

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

您要将其导入Excel或其他内容吗? 根据我的经验,Excel的CSV导入非常糟糕,并且它不会自动检测传入的UTF-8数据。

可能是编码在这里引起了问题。

附带说明一下,它是CSV =逗号分隔值。 您不是将逗号放在..吗?

更改:

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

至:

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

这将使这些值在excel中打开时显示在单独的列中,除非您希望所有这些都在1列中...?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM