libxlsxwriter
Frequently Asked Questions

The section outlines some answers to some frequently asked questions.

Q. Can Libxlsxwriter use an existing Excel file as a template?

No.

Libxlsxwriter is designed only as a file writer. It cannot read or modify an existing Excel file.

Q. Why do my formulas show a zero result in some, non-Excel applications?

Due to a wide range of possible formulas and the inter-dependencies between them libxlsxwriter doesn't, and realistically cannot, calculate the result of a formula when it is written to an XLSX file. Instead, it stores the value 0 as the formula result. It then sets a global flag in the XLSX file to say that all formulas and functions should be recalculated when the file is opened.

This is the method recommended in the Excel documentation and in general it works fine with spreadsheet applications. However, applications that don't have a facility to calculate formulas, such as Excel Viewer, or several mobile applications, will only display the 0 results.

If required, it is also possible to specify the calculated result of the formula using the worksheet_write_formula_num() function.

worksheet_write_formula_num(worksheet, 0, 0, "=2 + 2", NULL, 4);
Note
LibreOffice doesn't recalculate Excel formulas that reference other cells by default, in which case you will get the default XlsxWriter value of 0. You can work around this by setting the "LibreOffice Preferences -> LibreOffice Calc -> Formula -> Recalculation on File Load" option to "Always recalculate" (see the LibreOffice documentation). Or, you can set a blank string result in the formula, which will also force recalculation:
worksheet_write_formula_str(worksheet, 0, 0, "=Sheet1!$A$1", NULL, "");

Q. Can I apply a format to a range of cells in one go?

Currently no. However, it is a planned features to allow cell formats and data to be written separately.

Q. Is Visual C++ on Windows supported?

Yes. See Using vcpkg for Microsoft Visual Studio.

Q. Is feature X supported or will it be supported?

All supported features are documented. In time the feature set may expand to include more of the functionality of the Python XlsxWriter module.

Q. Is there an "AutoFit" option for columns?

Unfortunately, there is no way to specify "AutoFit" for a column in the Excel file format. This feature is only available at runtime from within Excel. It is possible to simulate "AutoFit" by tracking the width of the data in the column as your write it.

Q. Do people actually ask these questions frequently, or at all?

Apart from this question, yes.

Next: Known Issues and Bugs

worksheet_write_formula_num
lxw_error worksheet_write_formula_num(lxw_worksheet *worksheet, lxw_row_t row, lxw_col_t col, const char *formula, lxw_format *format, double result)
Write a formula to a worksheet cell with a user defined numeric result.
worksheet_write_formula_str
lxw_error worksheet_write_formula_str(lxw_worksheet *worksheet, lxw_row_t row, lxw_col_t col, const char *formula, lxw_format *format, const char *result)
Write a formula to a worksheet cell with a user defined string result.