48 lines
1.3 KiB
Lua
48 lines
1.3 KiB
Lua
local _ENV = mkmodule('plugins.xlsxreader')
|
|
|
|
--[[
|
|
|
|
Native functions:
|
|
|
|
* file_handle open_xlsx_file(filename)
|
|
* close_xlsx_file(file_handle)
|
|
* sheet_names list_sheets(file_handle)
|
|
|
|
* sheet_handle open_sheet(file_handle, sheet_name)
|
|
* close_sheet(sheet_handle)
|
|
* cell_strings get_row(sheet_handle)
|
|
|
|
Sample usage:
|
|
|
|
local xlsxreader = require('plugins.xlsxreader')
|
|
|
|
local function dump_sheet(xlsx_file, sheet_name)
|
|
print('reading sheet: '..sheet_name)
|
|
local xlsx_sheet = xlsxreader.open_sheet(xlsx_file, sheet_name)
|
|
dfhack.with_finalize(
|
|
function () xlsxreader.close_sheet(xlsx_sheet) end,
|
|
function ()
|
|
local row_cells = xlsxreader.get_row(xlsx_sheet)
|
|
while row_cells do
|
|
printall(row_cells)
|
|
row_cells = xlsxreader.get_row(xlsx_sheet)
|
|
end
|
|
end
|
|
)
|
|
end
|
|
|
|
local filepath = "path/to/some_file.xlsx"
|
|
local xlsx_file = xlsxreader.open_xlsx_file(filepath)
|
|
dfhack.with_finalize(
|
|
function () xlsxreader.close_xlsx_file(xlsx_file) end,
|
|
function ()
|
|
for _, sheet_name in ipairs(xlsxreader.list_sheets(xlsx_file)) do
|
|
dump_sheet(xlsx_file, sheet_name)
|
|
end
|
|
end
|
|
)
|
|
|
|
--]]
|
|
|
|
return _ENV
|