美文网首页
iOS 如何生成EXCEL文档和读取EXCEL文档

iOS 如何生成EXCEL文档和读取EXCEL文档

作者: longkingwdlsky | 来源:发表于2021-07-16 11:47 被阅读0次

    最近开发一个蓝牙项目,需要导出和导入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

谢谢各位的无私奉献。。。

相关文章

网友评论

      本文标题:iOS 如何生成EXCEL文档和读取EXCEL文档

      本文链接:https://www.haomeiwen.com/subject/ukkmpltx.html