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

iOS 如何生成EXCEL文档和读取EXCEL文档,第1张

    最近开发一个蓝牙项目,需要导出和导入EXCEL数据,由于之前没有接触这类功能,查阅了相关资料,最终选择采用libxlsxwriter库实现EXCEL文档生成、CoreXLSX实现EXCEL文档内容解析,做个简单汇总方便以后查阅,费话不多说,直接上干货。

Libxlsxwriter 是一个 C 库,可用于在 Excel 2007+ XLSX 文件中写入文本、数字、公式和指向多个工作表的超链接。

具体功能介绍请跳转github的库地址连接:

1、项目地址

https://github.com/jmcnamara/libxlsxwriter

2、使用手册地址

http://libxlsxwriter.github.io/

因为项目是用swift开发,所以这里主要简单介绍下swift项目下如何使用:

数据格式建议采用Array的方式存储每一组的数据,方便数据写入处理

文件名称根据实际需求定义,路径只需要文件夹路径拼接文件名即可

创建表格过程如下:

1、生成一张表格

2、创建一个sheet

3、设置表格的样式、格式(包含文字格式、文字颜色、对齐方式等)

样式设置可参考使用手册里的说明,这里大概列几个供参考:

4、关闭表格创建

如果格式不对或者样式不喜欢,可以结合实际重新设置

QuickLook的框架详解请查看:https://www.jianshu.com/p/1e886bd9dd51

可以通过QuickLook打开EXCEL文档,同时QuickLook还集成一系列功能(保存文件、传送文件等),导出文档功能可用这个框架实现,具体如何导出请看框架详解说明即可

可以通过设置样式创建各种复杂的EXCEL表格,文档说明也非常详细,用户很容易就可以利用该框架创建满足各种需求的EXCEL表格

没有EXCEL读取功能,因此读取功能只能另外处理

至此,一个简单的EXCEL创建过程已经完成。libxlsxwriter功能十分强大, 如果要生成一个复杂的表格,请仔细研读格式设置说明文档

CoreXLSX是一个库,它专注于表示基于XML的XLSX电子表格格式的底层结构。它允许您打开扩展名为.xlsx的电子表格存档,并将其内部结构映射到直接用Swift表示的模型类型中。

需要注意的是,此库仅为.xlsx格式提供只读支持。由于旧的legacy.xls电子表格格式具有完全不同的内部结构,如果您需要使用该类型的文件,请参考其他库。

如果您的.xlsx文件使用ECMA-376敏捷加密(这似乎是最流行的一种),请查看CryptoOffice库。

项目地址:https://github.com/CoreOffice/CoreXLSX

可通过系统提供的API打开,如下:

可通过UIDocumentPickerDelegate回调方法拿到对应的文件路径, 这里需要注意一个细节 ,如下图

读取文件时需要授权,不然有的文件无法读取,会报没有权限的错误提示,读取数据完成后,需要关闭授权

采用CoreXLSX相关API去读取数据,具体可参考项目文档说明,因为项目在读取数据时需要校验文档内容是否合法,不合法需要提示用户重新选择其他文件,校验规则可根据实际需求去做,以下列举个人项目的简单校验,如下图

最终rows得到的就是每组的数据,可通过遍历获取对应的数据,如有疑问,请参考官方文档或者官方DEMO

参考文献:

libxlsxwriter开源库:https://github.com/jmcnamara/libxlsxwriter

CoreXLSX开源库:https://github.com/CoreOffice/CoreXLSX

XlsxReaderWriterSwift开源库:https://github.com/mehulparmar4ever/XlsxReaderWriterSwift

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

1.读取Excel文件内容

2.获取Excel第一行字段名

3.根据某个字段获取某列

如需从其他地方读取,请参考 从微信,QQ,iCloud读取文件

网上一顿查找资料, 大神demo

能实现xls,xlsx,csv格式数据解析

解析后得到一个数组

遍历数组,筛选keyName(单元格位置)最后一个字符为“1”的数据,且“1”之前的字符必须为纯字母,需考虑以下情况(A1,AA1,A11,AA11)

1.筛选数据时候直接插入数组对应位置,这样就不用进行排序 *** 作(是否更节省时间?)

2.分离表数据,减少遍历数组次数

3.xls格式解析不了,因DHxlsReader添加libiconv.2.dylib库后无法编译,demo是可以用,添加到自己项目就编译失败,可能是自己工程配置有问题,有知道咋回事可以告知一下


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9627882.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存