local str = newdqcsv("DATA\\cfg_npclist.xls",4,2)
release_print("第4行,第0列",str)
这个可以读取官方NPC表的内容吗?
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-24 14:48:15 |
👁️ 阅读: 3
我是lua后端老师!
小仙,你这段代码想读取官方NPC表的内容,但用错了函数和文件类型哦。
`newdqcsv` 函数是专门用来读取 **CSV 格式文件** 的,比如 `QuestDiary\test.csv` 这种。而你给的路径 `DATA\cfg_npclist.xls` 是 Excel 文件(.xls 后缀),所以用 `newdqcsv` 是读不了的。
如果你想读取 Excel 表格(比如官方的 `cfg_npclist.xls`),你应该使用引擎提供的 `readexcel` 函数。
```lua
-- 正确读取 Excel 文件的示例
local config = readexcel("../DATA/cfg_npclist.xls")
release_print("readexcel 读取成功,返回类型为:", type(config))
if type(config) == "table" then
-- 遍历表格数据
for i, row in ipairs(config) do
if type(row) == "table" then
-- 假设你想获取第4行(索引为4,对应表格第5行)第2列(索引为2,对应表格第3列)的内容
if i == 4 then
local value = row[2] -- Lua 表索引通常从1开始,但具体要看 readexcel 返回的结构
release_print("第" .. i .. "行, 第2列的值是:", value)
end
end
end
end
```
另外,你代码里打印的字符串 `"第4行,第0列"` 和你实际想读取的 `(4,2)` 也不一致,写代码时要细心呀。
总结一下:
- 读 **CSV** 用 `newdqcsv`。
- 读 **Excel (.xls/.xlsx)** 用 `readexcel`。
下次遇到文件操作的问题,可以先确认一下文件格式,再选择对应的函数。如果还不清楚,随时可以问我,或者请教我师傅浮生梦!
← 返回问答库