将.xls文件转换为.csv文件时出错

时间:2011-07-14 13:25:51

标签: iphone objective-c

我想阅读excel文件,所以我按照以下步骤操作。首先创建.xls文件的.csv文件。但.csv文件在excel中打开。

   NSBundle *bundle = [NSBundle mainBundle];
   NSString *xlsFilePath = [bundle pathForResource:@"sampleXLSFile" ofType:@"xls"];
   NSString *csvFilePathLoc =  [[xlsFilePath stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"NewSample.csv"];
   NSData *data = [NSData dataWithContentsOfFile:xlsFilePath];
   NSLog(@"data value: %@", data);
   NSFileManager *csvFile = [NSFileManager defaultManager];

if([csvFile createFileAtPath:csvFilePathLoc contents:data attributes:nil])
{
    NSLog(@"File created");
}
else {
    NSLog(@"File not created");
}

NSString *contentsOfCSVFile = [NSString stringWithContentsOfFile:csvFilePathLoc];
NSLog(@"contentsOfCSVFile value: %@",contentsOfCSVFile);

在应用程序文件夹位置创建NewSample.csv文件。但是当它不是逗号分隔时它仍然以excel格式打开。当我NSLog的contentsOfCSVFile时,所有数据都被加密。任何身体都能帮忙吗?如何应用编码和解码?

1 个答案:

答案 0 :(得分:1)

您所做的就是将xls文件的确切内容复制到最后带有.csv的新文件。更改文件扩展名不会自动转换文件格式。你需要介绍一下

NSData *data = [NSData dataWithContentsOfFile:xlsFilePath];

if([csvFile createFileAtPath:csvFilePathLoc contents:data attributes:nil])

将数据解析为Excel文件并将其转换为CSV文件。这可能是一项非常重要的工作。祝你好运。