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