xlsx

Read and parse Excel files


Keywords
xlsx, excel, reader, hackertoberfest
License
MIT
Install
nimble install xlsx

Documentation

xlsx

Parse xlsx written in Nim.[WIP]

Docs

Docs in https://xflywind.github.io/xlsx/xlsx.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("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