Home

Awesome

Nimlibxlsxwriter is a Nim wrapper for the libxlsxwriter library.

Nimlibxlsxwriter is distributed as a Nimble package and depends on nimgen and c2nim to generate the wrappers. The libxlsxwriter source code is downloaded using Git so having git in the path is required.

Installation

Nimlibxlsxwriter can be installed via Nimble:

> nimble install nimgen

> nimble install nimlibxlsxwriter

> nimble setup nimlibxlsxwriter

Usage

import nimlibxlsxwriter/xlsxwriter

proc main() =
  
  # Create a new workbook and add a worksheet
  var workbook: ptr lxw_workbook = workbook_new("demo.xlsx")
  var worksheet: ptr lxw_worksheet = workbook_add_worksheet(workbook, nil)

  # Add a format.
  var format: ptr lxw_format = workbook_add_format(workbook)

  # Set the bold property for the format
  format_set_bold(format)

  # Change the column width for clarity.
  discard worksheet_set_column(worksheet, 0, 0, 20, nil)

  # Write some simple text.
  discard worksheet_write_string(worksheet, 0, 0, "Hello", nil)

  # Text with formatting.
  discard worksheet_write_string(worksheet, 1, 0, "World", format)

  # Write some numbers.
  discard worksheet_write_number(worksheet, 2, 0, 123, nil)
  discard worksheet_write_number(worksheet, 3, 0, 123.456, nil)

  # Insert an image.
  discard worksheet_insert_image(worksheet, 1, 2, "logo.png");

  discard workbook_close(workbook)

main()

Refer to the tests diretory for examples on how the library can be used.

Credits

Nimlibxlsxwriter wraps the libxlsxwriter source code and all licensing terms of libxlsxwriter apply to the usage of this package.

Credits go out to c2nim as well without which this package would be greatly limited in its abilities.

Feedback

Nimlibxlsxwriter is a work in progress and any feedback or suggestions are welcome. It is hosted on GitHub and issues, forks and PRs are most appreciated.