我是 iOS 新手,正在尝试将电子表格的内容读入 iOS 数组。
我使用的电子表格是一个简单的 3 x 2 数组,第一列为数字,第二列为文本。我尝试在 .xls、.xlsx、. cdv、.txt(unicode 和分隔符)但没有成功。该文件称为“资金”,我使用的代码是:
NSData *databuffer;
NSFileHandle * file;
NSString *docDir = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES)[0];
NSString *fileDir = [docDir stringByAppendingPathComponent:@"funds.xls"];
file = [NSFileHandle fileHandleForReadingAtPath:fileDir];
if (file == nil) NSLog (@"Failed to open file");
[file seekTOOffset: 10];
databuffer = [file readDataOfLength: 5];
[file closeFile];
它找到文件的目录,但在以下位置放弃[NSFileHandle fileHandleForReadingAtPath:fileDir]
.
我应该做什么?我需要帮助来确认应该使用什么文件类型作为源,以及如何将其读入数组。
当这个问题解决后,我可能需要读取大量数据、几列、4k 行、文本和非整数的混合。
当数据量达到该大小时,我应该使用某种格式或方法吗?
确保从 Excel 中导出数据CSV 格式 http://en.wikipedia.org/wiki/Comma-separated_values.
很容易使用NS文件管理器 http://nshipster.com/nsfilemanager/访问该文件:
NSString *pathName = ...; /// fill in the file's pathname
NSFileManager *fm = [NSFileManager defaultManager];
if ([fm fileExistsAtPath:pathName]) {
// read the file contents, see below
}
对于小文件,你可以直接说:
NSString *lines = [NSString stringWithContentsOfFile:filePath];
然后继续将字符串分割成行,并处理每一行。
对于大文件,最好看看一些更复杂的技术,例如Objective-C:逐行读取文件 https://stackoverflow.com/questions/1044334/objective-c-reading-a-file-line-by-line.
至于解析 CSV 行,请使用NSString
method componentsSeparatedByString
标记每一行,例如:
NSArray *fields = [line componentsSeparatedByString:@","];
实际上,这也是您用来将读取的文件内容拆分为单独的行的方法。只需注意换行符(CR LF 或 LF)即可。你会发现一些东西如何用换行符分割字符串 https://stackoverflow.com/questions/15156406/how-to-split-a-string-with-newlines.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)