A small wrapper in the D programming language around the C library libxlsxwriter, which writes Excel spreadsheets.
import libxlsxd;
void main() {
/* Create a new workbook and add a worksheet.
Workbook is RefCounted and will write the file
when it is released.
*/
auto workbook = newWorkbook("demo.xlsx");
auto worksheet = workbook.addWorksheet(null);
/* Add a format. */
auto format = workbook.addFormat();
/* Set the bold property for the format */
format.setBold();
/* Change the column width for clarity. */
worksheet.setColumn(0, 0, 20);
/* Write some simple text. */
worksheet.writeString(0, 0, "Hello");
/* Text with formatting. */
worksheet.writeString(1, 0, "World", format);
/* Write some numbers. */
worksheet.writeNumber(2, 0, 123);
worksheet.writeNumber(3, 0, 123.456);
// for the lazy
worksheet.write(4, 0, 13.37);
// for the lazy
worksheet.write(4, 1, true);
worksheet.write(4, 2, "Hello 1337");
worksheet.setColumn(4, 2, 20.0);
}
Consult https://libxlsxwriter.github.io/index.html for the api documentation.
The D code:
Workbook wb;
Format f = wb.addFormat();
is basically equivalent to this C code:
lxw_workbook *workbook
lxw_format *f = workbook_add_format(workbook);
So to find the documentation for the method "methodName" for the data structure "Datastructure", search for a C function "toLower(Datastructure)_toSnakeCase(methodName)". In this example "datastructure_method_name".
xlsxd can only write xlsx files, but there are more things to do
libxlsxwriter is integrated as a squashed git subtree. The command:
git subtree pull --prefix=libxlsxwriter --squash https://github.com/jmcnamara/libxlsxwriter master
will update that subtree to the current master of the libxlsxwriter repo. Then remove source/libxlsxd/xlsxwrap.d and then run
make source/libxlsxd/xlsxwrap.d