简体   繁体   English

导出后的csv文件中的数据

[英]Data in csv file after export

I have a problem with data who are exported to a csv file. 导出到csv文件的数据有问题。 It concerns the data with accented characters. 它涉及带有重音符号的数据。 Type Data is string. 类型数据是字符串。 in my file i have this : 在我的文件中,我有这个:

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

I would like to have : 我想拥有 :

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

what code should be used to do this? 应该使用什么代码来做到这一点? Thank you. 谢谢。

EDIT : my code 编辑:我的代码

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 : for viewing i use his : 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;
}

Your output looks like it might be correct, the problem seems like it's in how you are viewing it. 您的输出看起来可能是正确的,问题似乎出在您查看它的方式上。

Are you importing it into Excel or something? 您要将其导入Excel或其他内容吗? Excel's CSV import is very poor in my experience, and it won't auto-detect incoming UTF-8 data. 根据我的经验,Excel的CSV导入非常糟糕,并且它不会自动检测传入的UTF-8数据。

It's likely the encoding that's causing an issue here. 可能是编码在这里引起了问题。

As a side note it's a CSV = Comma Separated Values. 附带说明一下,它是CSV =逗号分隔值。 You aren't putting the commas in .. ? 您不是将逗号放在..吗?

Change: 更改:

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

To: 至:

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

This will make the values appear in separate columns when opened in excel, unless you want it all in 1 column ... ? 这将使这些值在excel中打开时显示在单独的列中,除非您希望所有这些都在1列中...?

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

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