6

我有数据导出到 excel 它工作正常。但我有一个小问题

我的输出是这样导出的:

在此处输入图像描述

我想要发生的是:

在此处输入图像描述

这是我要导出的代码:

-(void)exportCSV {

    NSArray * data = [NSArray arrayWithObjects:entries,keys, nil];
    NSLog(@"%@",data);
    csv =[NSMutableString string];
    for (NSArray * line in data) {
        NSMutableArray * formattedLine = [NSMutableArray array];
        for ( field in line) {
            BOOL shouldQuote = NO;
            NSRange r = [field rangeOfString:@","];
            //fields that contain a , must be quoted
            if (r.location != NSNotFound) {
                shouldQuote = YES;
            }
            r = [field rangeOfString:@"\""];
            //fields that contain a " must have them escaped to "" and be quoted
            if (r.location != NSNotFound) {
                field = [field stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""];
                shouldQuote = YES;
            }
            if (shouldQuote == YES) {
                [formattedLine addObject:[NSString stringWithFormat:@"\"%@\"\"%@\"", entries,keys]];
            } else {
                [formattedLine addObject:field];
            }
        }

        NSString * combinedLine = [formattedLine componentsJoinedByString:@";"];
        [csv appendFormat:@"%@\n", combinedLine];

        NSLog(@"%@",csv);
    }

}
4

1 回答 1

3

以下内容是否符合您的要求?
请注意,我没有考虑报价,我把它留给你;)
还要注意我假设 entry.count == keys.count

- (void)exportCSV {    
    NSArray *keys = @[@"T", @"R", @"RTT"];
    NSArray *entries = @[@"-329180696", @"1243918297", @"-998693494"];
    NSMutableString *csv = [[NSMutableString alloc] initWithCapacity:0];
    for (int i = 0; i < entries.count; i++) {
        [csv appendFormat:@"%@;%@\n", keys[i], entries[i]];
    }
}

输出:

T;-329180696
R;1243918297
RTT;-998693494

于 2013-04-21T12:48:12.227 回答