swift的UnsafePointer之写Excel

2019-07-04 11:20:22 浏览数 (1)

最近在使用swift结合xpath协议写了一些小东西来爬取数据,比如之前使用爬虫 swift cocoa写的一个建议的视频macOS App,但是这些都是基本的数据展示而最近想对数据进行一些表格统计,那么Excel是必不可少的,但是呢?很少有swift或者Objective-C操作Excel的案例,于是周末花时间各钟Baidu Google终于找到了一C框架写的建议创建操作Excel的框架。好了下面我们看看成功,等慢慢处理完整之后会慢慢开源到Gihub上,到时欢迎大家star pr……

首先我们看看结构

ConverBridge是swift与C的转接桥梁,因为我们是modulemap方式引入的C框架因此这个不能少

WorkBook这个是我们的主角,用于Excel的创建关闭,添加数据等

WorkFormat是格式处理类,Excel中文本的加粗对齐等格式由此控制

WorkDatetime比较特殊,是专门处理添加日期而创立的

BookWork Sheet 创建表达

BookWork Write 负责数据的写入

BookWork Error 列举的是常见的几种错误

下面我们看看怎么使用

1 创建Excel

代码语言:javascript复制
  let workBook = try  WorkBook.init(fullPath: path)

2 增加sheet页

代码语言:javascript复制
if    workBook?.add(sheet: "Sheet1") ?? true {
              _ =  workBook?.select(byName: "Sheet1")
            }

3 简单的数据格式写入

代码语言:javascript复制
workBook?.write(value: WorkBookValue.string("341235如图如果房顶上"), atRow: 0, atCol: 0, format: { (format:WorkFormat) -> Void in
                format.toBlod()
            })
   _ =  workBook?.write(value: WorkBookValue.string("234"), atRow: 1, atCol: 0, format: { (format:WorkFormat) -> Void in
                format.toBlod()
            })

4 创建并选取新的sheet

代码语言:javascript复制
            let name = "ddd"
            if workBook?.isSheetExist(forName: name) == false {
             let result =    workBook?.add(sheet: name)
                if result == true {
                    if true  ==   workBook?.select(byName: name) {
                        workBook?.write(value: WorkBookValue.string(name))
                    }
                    
                }
            }

最后我们预览一下效果:

虽然还不是十分完善但是雏形已出,候选有待完善,比如进行数据的柱状,折线图统计是必不可少的,希望大家多多给予支持让后续能够完成一个丰满的swift Excel操作库……

展望未来统计功能

0 人点赞