【问题标题】:converting lua file to csv or tsv or any excel database file将 lua 文件转换为 csv 或 tsv 或任何 excel 数据库文件
【发布时间】:2022-01-24 15:28:15
【问题描述】:

我有一个 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[Warblade of the Hakkari]|h|r",
                ["name"] = "Brighht",
            }, -- [1]
            {
                ["bid"] = 50,
                ["item"] = "|cff0070dd|Hitem:19907::::::::60:::::::|h[Zulian Tigerhide Cloak]|h|r",
                ["name"] = "Treasuredon",
            }, -- [2]
            {
                ["bid"] = 50,
                ["item"] = "|cffa335ee|Hitem:19897::::::::60:::::::|h[Betrayer's Boots]|h|r",
                ["name"] = "Sassysis",
            }, -- [3]
            {
                ["bid"] = 50,
                ["item"] = "|cff0070dd|Hitem:19895::::::::60:::::::|h[Bloodtinged Kilt]|h|r",
                ["name"] = "Yabmage",
            }, -- [4]
            {
                ["bid"] = 180,
                ["item"] = "|cffa335ee|Hitem:19856::::::::60:::::::|h[The Eye of Hakkar]|h|r",
                ["name"] = "Consti",
            }, -- [5]
            {
                ["bid"] = 100,
                ["item"] = "|cffa335ee|Hitem:19802::::::::60:::::::|h[Heart of Hakkar]|h|r",
                ["name"] = "Consti",
            }, -- [6]
            {
                ["bid"] = 300,
                ["item"] = "|cff0070dd|Hitem:22637::::::::60:::::::|h[Primal Hakkari Idol]|h|r",
                ["name"] = "Gnomepowah",
            }, -- [7]
            {
                ["bid"] = 220,
                ["item"] = "|cff0070dd|Hitem:22637::::::::60:::::::|h[Primal Hakkari Idol]|h|r",
                ["name"] = "Lockbik",
            }, -- [8]
            {
                ["bid"] = 110,
                ["item"] = "|cffa335ee|Hitem:20725::::::::60:::::::|h[Nexus Crystal]|h|r",
                ["name"] = "Aeto",
            }, -- [9]
        },
        ["size"] = 1285,
    }, -- [1]

我的想法是将其转换为 Excel,我可以在其中创建统计数据和图形并管理信息。

我浏览了整个网络,找不到任何可以将 lua 转换为任何 excel 文件格式(xls、csv、tsv)的程序

谁能给我一些关于如何最好地做到这一点的想法?

【问题讨论】:

  • 如果您没有找到任何在线工具,您可能需要在 VBA 或 Power Query 中编写自己的解析器。
  • 这些数据的 CSV 版本是什么样的?
  • @lhf 这个想法是有 5 列:日期、注释、出价、项目和名称。因此,对于第一项,它将是:"Thu Apr 29 14:54:21 2021",false,225,"|cffa335ee|Hitem:19866::::::::60:::::: :|h[哈卡莱战刃]|h|r","Treasuredon"

标签: excel csv lua


【解决方案1】:

CSV 和 TSV 基本上是一样的,只是分隔符不同而已。

编写 .xls 或 xlsx 有点复杂。

如果您想使用 xlsx,请打开网络浏览器并在任何网络搜索中输入“lua xlsx”。例如,您会找到https://github.com/jmcnamara/xlsxwriter.lua

--
-- A simple example of some of the features of the xlsxwriter module.
--

local Workbook = require "xlsxwriter.workbook"

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

-- Widen the first column to make the text clearer.
worksheet:set_column("A:A", 20)

-- Add a bold format to use to highlight cells.
local bold = workbook:add_format({bold = true})

-- Write some simple text.
worksheet:write("A1", "Hello")

-- Text with formatting.
worksheet:write("A2", "World", bold)

-- Write some numbers, with row/column notation.
worksheet:write(2, 0, 123)
worksheet:write(3, 0, 123.456)

workbook:close()

编写 CSV 或 TSV 很简单。您只需使用Lua's io library 将值写入文件并用逗号或制表符分隔即可。

这两种解决方案都要求您使用一些 for 循环递归地遍历您的表。

【讨论】:

  • 我从来没有用过 lua 编码,所以我只是在寻找一个真正的转换器。我现在看到我将不得不用 lua 或 vba 写一些东西。你说这件事是微不足道的,但是它的行和表的行和其中一列在开始时总是相同的值。仍在尝试了解如何自己编写它。但感谢这个想法。
  • 转换器会很困难。您需要知道表的结构和要从一个转换到另一个的输出文件。因此,除非有人针对与您完全相同的问题实施了一个,否则您将找不到一个。
猜你喜欢
  • 2014-07-08
  • 2019-05-30
  • 1970-01-01
  • 2013-12-16
  • 2012-09-16
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多