モジュール:CSV
ナビゲーションに移動
検索に移動
local p = {}
function p.csv2tbl(args)
local csv = args[1]
if csv == nil then return {} end
local tbl = {}
local row = {}
local rowIdx = 1
for line, lf in csv:gmatch '([^\n]+)(\n*)' do
row.lf = lf
local colIdx = 1
local isLast = false
for cell, comma in line:gmatch '([^,]*)(,?)' do
-- セルの情報をrowに溜める
if not isLast then row[colIdx] = cell end
isLast = #comma == 0
colIdx = colIdx + 1
end
-- 1行分の情報をtblの末尾に追加
if 0 < #row then table.insert(tbl, row) end
row = {}
rowIdx = rowIdx + 1
end
return tbl
end
return p