https://github.com/ringabout/xlsx
Parse excel written in Nim.
https://github.com/ringabout/xlsx
hackertoberfest
Last synced: 8 months ago
JSON representation
Parse excel written in Nim.
- Host: GitHub
- URL: https://github.com/ringabout/xlsx
- Owner: ringabout
- License: mit
- Created: 2019-12-11T12:31:47.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-06-11T04:21:48.000Z (about 2 years ago)
- Last Synced: 2024-10-14T15:03:11.087Z (over 1 year ago)
- Topics: hackertoberfest
- Language: Nim
- Homepage:
- Size: 227 KB
- Stars: 61
- Watchers: 7
- Forks: 12
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://dev.azure.com/xzsflywind/xlsx/_build/latest?definitionId=2&branchName=master)
# xlsx [](https://github.com/yglukhov/nimble-tag)
Parse xlsx written in Nim.[WIP]
### Docs
Docs in https://ringabout.github.io/xlsx/utils.html
### Usage
#### Parse Excel without header.
```nim
import xlsx
let
data = parseExcel("tests/test.xlsx")
sheetName = "Sheet2"
echo data[sheetName]
```
output:
```text
+----------+----------+----------+
|name |grade |age |
|simon | |14 |
|tom |87 |34 |
+----------+----------+----------+
```
#### Parse Excel with header.
```nim
import xlsx
let
data = parseExcel("tests/test.xlsx", header = true)
sheetName = "Sheet2"
echo data[sheetName]
```
output:
```text
+----------+----------+----------+
|name |grade |age |
+----------+----------+----------+
|simon | |14 |
|tom |87 |34 |
+----------+----------+----------+
```
#### Parse Excel and skip header for data processing.
```nim
import xlsx
let
data = parseExcel("tests/test.xlsx", skipHeaders = true)
sheetName = "Sheet2"
echo data[sheetName]
```
output:
```text
+----------+----------+----------+
|simon | |14 |
|tom |87 |34 |
+----------+----------+----------+
```
#### Convert to Csv
```nim
import xlsx
let sheetName = "Sheet2"
let data = parseExcel("tests/test.xlsx")
data[sheetName].toCsv("tests/test.csv", sep = ",")
```
output:
```text
name,grade,age
simon,,14
tom,87,34
```
#### Loop through rows:
```nim
import xlsx
let sheetName = "Sheet2"
let data = parseExcel("tests/test.xlsx")
let rows = data[sheetName].toSeq(false)
for row in rows:
echo row
```
output:
```text
@["name", "grade", "age"]
@["simon", "", "14"]
@["tom", "87", "34"]
```
#### Loop through rows and skip headers:
```nim
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:
```text
Name is: simon
Name is: tom
```