直接解析xls比较困难,但是仔细研究一下Numbers可以发现,Numbers有一个导出CSV文件的功能。
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。
下面的一段代码就是用来将CSV文件解析成字典对象的:
+ (id)pasrse:(NSString *)csvFilePath byClass:(Class)c
{
NSData *data = [NSData dataWithContentsOfFile:csvFilePath];
NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSArray *array = [str componentsSeparatedByString:@"\r\n"];
NSString *headerStr = array.firstObject;
NSString *flag = @",";
NSArray *headerArray = [headerStr componentsSeparatedByString:flag];
NSMutableArray *objsArray = [NSMutableArray array];
for (int i=1; i<array.count; i++) {
NSMutableDictionary *dict = [NSMutableDictionary dictionary];
NSString *contentStr = array[i];
NSArray *contentArray = [contentStr componentsSeparatedByString:flag];
for (int index=0; index<headerArray.count; index++) {
NSString *key = headerArray[index];
NSString *value = contentArray[index];
if (key.length>0 && value.length) {
dict[key] = value;
}
}
[objsArray addObject:dict];
}
NSArray *modelArray = [c mj_objectArrayWithKeyValuesArray:objsArray];
return modelArray;
}