直接解析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;
}