将 lua 文件转换为 csv、tsv 或任何 Excel 数据库文件

我有一个 lua 文件,它是一个记录我在《魔兽世界》游戏中所有袭击的数据库。它由游戏中的一个插件生成,包含有关哪个玩家以哪个价格获得了哪些战利品的信息。 像这样:

GDKPd_PotData = {
["playerBalance"] = {
},
["curPotHistory"] = {
},
["history"] = {
    {
        ["date"] = "Thu Apr 29 14:54:21 2021",
        ["note"] = false,
        ["items"] = {
            {
                ["bid"] = 225,
                ["item"] = "|cffa335ee|Hitem:19866::::::::60:::::::|h[Hakkari 战刃]|h|r",
                ["name"] = "Brighht",
            }, -- [1]
            {
                ["bid"] = 50,
                ["item"] = "|cff0070dd|Hitem:19907::::::::60:::::::|h[Zulian 虎皮披风]|h|r",
                ["name"] = "Treasuredon",
            }, -- [2]
            {
                ["bid"] = 50,
                ["item"] = "|cffa335ee|Hitem:19897::::::::60:::::::|h[背叛者的靴子]|h|r",
                ["name"] = "Sassysis",
            }, -- [3]
            {
                ["bid"] = 50,
                ["item"] = "|cff0070dd|Hitem:19895::::::::60:::::::|h[染血短裙]|h|r",
                ["name"] = "Yabmage",
            }, -- [4]
            {
                ["bid"] = 180,
                ["item"] = "|cffa335ee|Hitem:19856::::::::60:::::::|h[Hakkar 之眼]|h|r",
                ["name"] = "Consti",
            }, -- [5]
            {
                ["bid"] = 100,
                ["item"] = "|cffa335ee|Hitem:19802::::::::60:::::::|h[Hakkar 之心]|h|r",
                ["name"] = "Consti",
            }, -- [6]
            {
                ["bid"] = 300,
                ["item"] = "|cff0070dd|Hitem:22637::::::::60:::::::|h[原始哈卡莱神像]|h|r",
                ["name"] = "Gnomepowah",
            }, -- [7]
            {
                ["bid"] = 220,
                ["item"] = "|cff0070dd|Hitem:22637::::::::60:::::::|h[原始哈卡莱神像]|h|r",
                ["name"] = "Lockbik",
            }, -- [8]
            {
                ["bid"] = 110,
                ["item"] = "|cffa335ee|Hitem:20725::::::::60:::::::|h[源质水晶]|h|r",
                ["name"] = "Aeto",
            }, -- [9]
        },
        ["size"] = 1285,
    }, -- [1]

我的想法是将它转换为一个 Excel 文件,在其中创建统计信息和图形,并管理信息。

我查遍了整个网络,都找不到任何将 lua 转换为任何 Excel 文件格式(xls、csv、tsv)的程序

有没有人能给我一些最佳方法的建议呢?

原文链接 https://stackoverflow.com/questions/70836306

点赞
stackoverflow用户2858170
stackoverflow用户2858170

CSV 和 TSV 基本上是相同的东西,只是使用不同的分隔符。

编写 .xls 或 .xlsx 文件会更加复杂。

如果你想使用 .xlsx,打开网页浏览器并输入 "lua xlsx" 进行搜索即可。例如,你可以找到 https://github.com/jmcnamara/xlsxwriter.lua

--
-- xlsxwriter 模块的一些简单示例。
--

local Workbook = require "xlsxwriter.workbook"

local workbook  = Workbook:new("demo.xlsx")
local worksheet = workbook:add_worksheet()

-- 扩大第一列的宽度,使文本更加清晰。
worksheet:set_column("A:A", 20)

-- 添加加粗格式,用于突出显示单元格。
local bold = workbook:add_format({bold = true})

-- 撰写简单的文本。
worksheet:write("A1", "Hello")

-- 撰写具有格式的文本。
worksheet:write("A2", "World", bold)

-- 撰写一些数字,使用行/列记号。
worksheet:write(2, 0, 123)
worksheet:write(3, 0, 123.456)

workbook:close()

写入 CSV 或 TSV 很简单。只需使用 Lua 的 io 库 将数值写入文件,并用逗号或制表符分隔它们即可。

这两种解决方案都需要使用几个 for 循环递归地遍历你的表格。

2022-01-24 17:19:48