最近开发一个蓝牙项目,需要导出和导入EXCEL数据,由于之前没有接触这类功能,查阅了相关资料,最终选择采用libxlsxwriter库实现EXCEL文档生成、CoreXLSX实现EXCEL文档内容解析,做个简单汇总方便以后查阅,费话不多说,直接上干货。
1、libxlsxwriter
Libxlsxwriter 是一个 C 库,可用于在 Excel 2007+ XLSX 文件中写入文本、数字、公式和指向多个工作表的超链接。
具体功能介绍请跳转github的库地址连接:
1、项目地址
https://github.com/jmcnamara/libxlsxwriter
2、使用手册地址
http://libxlsxwriter.github.io/
因为项目是用swift开发,所以这里主要简单介绍下swift项目下如何使用:
1.1、准备好导入数据
数据格式建议采用Array的方式存储每一组的数据,方便数据写入处理
1.2、创建存储文件夹路径
1.3、创建存储文件
文件名称根据实际需求定义,路径只需要文件夹路径拼接文件名即可
1.4、创建EXCEL表格
创建表格过程如下:
1、生成一张表格
2、创建一个sheet
3、设置表格的样式、格式(包含文字格式、文字颜色、对齐方式等)
样式设置可参考使用手册里的说明,这里大概列几个供参考:
4、关闭表格创建
1.5、查看EXCEL表格是否创建成功
1.5.1、可通过存储路径查看表格是否按我们设置样式生成
如果格式不对或者样式不喜欢,可以结合实际重新设置
1.5.2、通过QuickLook系统自带框架打开EXCEL文档
QuickLook的框架详解请查看:https://www.jianshu.com/p/1e886bd9dd51
可以通过QuickLook打开EXCEL文档,同时QuickLook还集成一系列功能(保存文件、传送文件等),导出文档功能可用这个框架实现,具体如何导出请看框架详解说明即可
1.6、优点
可以通过设置样式创建各种复杂的EXCEL表格,文档说明也非常详细,用户很容易就可以利用该框架创建满足各种需求的EXCEL表格
1.7、缺点
没有EXCEL读取功能,因此读取功能只能另外处理
至此,一个简单的EXCEL创建过程已经完成。libxlsxwriter功能十分强大,如果要生成一个复杂的表格,请仔细研读格式设置说明文档
2、CoreXLSX
CoreXLSX是一个库,它专注于表示基于XML的XLSX电子表格格式的底层结构。它允许您打开扩展名为.xlsx的电子表格存档,并将其内部结构映射到直接用Swift表示的模型类型中。
需要注意的是,此库仅为.xlsx格式提供只读支持。由于旧的legacy.xls电子表格格式具有完全不同的内部结构,如果您需要使用该类型的文件,请参考其他库。
如果您的.xlsx文件使用ECMA-376敏捷加密(这似乎是最流行的一种),请查看CryptoOffice库。
项目地址:https://github.com/CoreOffice/CoreXLSX
2.1、打开EXCEL文档
可通过系统提供的API打开,如下:
可通过UIDocumentPickerDelegate回调方法拿到对应的文件路径,这里需要注意一个细节,如下图
读取文件时需要授权,不然有的文件无法读取,会报没有权限的错误提示,读取数据完成后,需要关闭授权
2.2、读取文档内容
采用CoreXLSX相关API去读取数据,具体可参考项目文档说明,因为项目在读取数据时需要校验文档内容是否合法,不合法需要提示用户重新选择其他文件,校验规则可根据实际需求去做,以下列举个人项目的简单校验,如下图
最终rows得到的就是每组的数据,可通过遍历获取对应的数据,如有疑问,请参考官方文档或者官方DEMO
参考文献:
libxlsxwriter开源库:https://github.com/jmcnamara/libxlsxwriter
CoreXLSX开源库:https://github.com/CoreOffice/CoreXLSX
XlsxReaderWriterSwift开源库:https://github.com/mehulparmar4ever/XlsxReaderWriterSwift
谢谢各位的无私奉献。。。