iOS 读取xls数据
前言
iOS 并没有提供解析 .xls 格式的文件,但是我们可以通过将其转换为 .cvs 格式进行读取和解析。
转换
将 .xls 文件用 Numbers.app 应用打开,对数据格式进行整理,保留第一个行列说明文字,然后点击 文件 -> 导出到 -> CVS...,本文编码选择 Unicode(UTF-8) ,点击 下一步...,进行 文件命名 和 导出,将导入的文件拖入 Xcode 即可。
读取
从网上找到下面的代码,亲测可用。其他方法待验证。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27- (NSArray *)readCSVData{
    NSMutableArray *_InfoArray;
    if (_InfoArray) {
        return NULL;
    }
    _InfoArray=[[NSMutableArray alloc]init];
    NSString *filepath=[[NSBundle mainBundle] pathForResource:@"schoollist" ofType:@"csv"];
    FILE *fp=fopen([filepath UTF8String], "r");
    if (fp) {
        char buf[BUFSIZ];
        fgets(buf, BUFSIZ, fp);
        NSString * schoolAddress;
        while (!feof(fp)) {
            char buf[BUFSIZ];
            fgets(buf, BUFSIZ, fp);
            // 处理文本信息 转化 成 数组文件
            NSString *s=[[NSString alloc]initWithUTF8String:(const char *)buf];
            NSString *ss=[s stringByReplacingOccurrencesOfString:@"\r" withString:@""];
            ss=[ss stringByReplacingOccurrencesOfString:@"\n" withString:@""];
            NSMutableArray *a = [NSMutableArray arrayWithArray:[ss componentsSeparatedByString:@","]];
            //a[0]:第一列,a[1]:第二列,a[2]:第三列...
            [_InfoArray addObject:a];
            }
        }
    }
    return _InfoArray;
}
参考资料
- https://blog.csdn.net/qxuewei/article/details/51733142
- https://www.jianshu.com/p/60fe79cac9bb
- https://blog.csdn.net/newnazi/article/details/9228811
- https://www.jianshu.com/p/95c88a7073a6
- https://www.jianshu.com/p/ca9b5e10377e
文档信息
- 版权声明:自由转载-保持署名-非商用-非衍生 ( CC BY-NC-ND 4.0 )
