cfadmin-cn / lua-xlsx

Microsoft xlsx library written using Lua C API.

Home Page:https://cfadmin.cn

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

lua-xlsx

基于xlsxio实现的Luaxlsx读写库.

安装方法

  1. 使用aptyum等工具安装libexpatminizip/libzip(二选一);

  2. 下载xlsxio并且解压, 然后使用CMAKE构建并安装;

  3. 将本库克隆到cfadmin3rd目录下, 并且使用make build命令进行编译.

  4. 开始使用.

API 介绍

local lxlsx = require "lxlsx"

0. 创建对象

function lxlsx:new() return xlsx end

创建一个用于读/写xlsxC对象.

1. 读模式

-- 以读模式打开文件
function xlsx:ropen() return boolean, string end
-- 获取所有工作簿名称
function xlsx:get_sheets_name() return { sheet1, sheet1, sheet1} end

以数组形式返回所有工作簿名称.

-- 获取指定`sheet_name`下所有内容
function xlsx:lget_sheet_all(sheet_name) return table end

以数组形式返回指定工作簿名的所有内容.

2. 写模式

-- 以写模式打开文件
function xlsx:wopen() return boolean, string end

成功返回true, 失败返回false与出错原因.

这两个方法没成功, 不可调用之后的方法。

-- 写入内容
function xlsx:add_column(text) return true end

将字符串类型的text写入到当前游标的指向的单元格.

-- 设置换行
function xlsx:next_line() return true end

从当前行尾换到下一行首.

3. 关闭

-- 关闭
function xlsx:close() end

关闭调用ropenwopen打开的文件, 如果没有打开则不做任何操作.

Examples

以下示例可以在test.lua文件中找到.

require "utils"

local lxlsx = require "lxlsx"

local xls = lxlsx:new()

assert(xls:wopen("test.xlsx", "sheet1"))
xls:add_column("名称"); xls:add_column("公司"); xls:add_column("年龄")
xls:next_line()
xls:add_column("水果糖"); xls:add_column("Netease"); xls:add_column("30")
xls:next_line()
xls:add_column("中二丸"); xls:add_column("未知"); xls:add_column("26")
xls:close()

assert(xls:ropen("test.xlsx"))
var_dump(xls:get_sheets_name())
var_dump(xls:get_sheet_all("sheet1"))

注意

  • wopen会立刻创建文件, 但是必须调用close才会将数据写入到文件.

  • ropen/wopen可以分别打开2个同一文件或不同文件, 但是close会同时关闭他们.

协议

MIT License

About

Microsoft xlsx library written using Lua C API.

https://cfadmin.cn

License:MIT License


Languages

Language:C 81.1%Language:Makefile 12.0%Language:Lua 6.9%