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 )