Objective-C解析xls思路

直接解析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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,328评论 19 139
  • 首页 资讯 文章 资源 小组 相亲 登录 注册 首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他...
    Helen_Cat阅读 9,342评论 1 10
  • 第七章 文件和数据格式化 文件的使用 文件概述 文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容。概念...
    jplee阅读 9,973评论 1 0
  • 输入输出通常可以划分为几大类: 读取文本文件和其他更高效的磁盘存储格式加载数据库中的数据利用Web API操作网络...
    Shinichi新一君阅读 4,044评论 0 0
  • “这一张跳过,后几张会出现一个跟他情况类似的,那一个故事更传奇些。 “第四张,嘿嘿,这个人我现在还经常见到他。他是...
    fb21146acca4阅读 916评论 0 0