xlsx
xlsx copied to clipboard
Parse excel written in Nim.
xlsx 
Parse xlsx written in Nim.[WIP]
Docs
Docs in https://xflywind.github.io/xlsx/utils.html
Usage
Parse Excel without header.
import xlsx
let
data = parseExcel("tests/test.xlsx")
sheetName = "Sheet2"
echo data[sheetName]
output:
+----------+----------+----------+
|name |grade |age |
|simon | |14 |
|tom |87 |34 |
+----------+----------+----------+
Parse Excel with header.
import xlsx
let
data = parseExcel("tests/test.xlsx", header = true)
sheetName = "Sheet2"
echo data[sheetName]
output:
+----------+----------+----------+
|name |grade |age |
+----------+----------+----------+
|simon | |14 |
|tom |87 |34 |
+----------+----------+----------+
Parse Excel and skip header for data processing.
import xlsx
let
data = parseExcel("tests/test.xlsx", skipHeaders = true)
sheetName = "Sheet2"
echo data[sheetName]
output:
+----------+----------+----------+
|simon | |14 |
|tom |87 |34 |
+----------+----------+----------+
Convert to Csv
import xlsx
let sheetName = "Sheet2"
let data = parseExcel("tests/test.xlsx")
data[sheetName].toCsv("tests/test.csv", sep = ",")
output:
name,grade,age
simon,,14
tom,87,34
Loop through rows:
import xlsx
let sheetName = "Sheet2"
let data = parseExcel("tests/test.xlsx")
let rows = data[sheetName].toSeq(false)
for row in rows:
echo row
output:
@["name", "grade", "age"]
@["simon", "", "14"]
@["tom", "87", "34"]
Loop through rows and skip headers:
import xlsx
let sheetName = "Sheet2"
let data = parseExcel("tests/test.xlsx")
let rows = data[sheetName].toSeq(true)
for row in rows:
echo "Name is: " & row[0]
output:
Name is: simon
Name is: tom