/* * Example of writing some data with numeric formatting to a simple Excel file * using libxlsxwriter. * * Copyright 2014-2021, John McNamara, jmcnamara@cpan.org * */ #include "xlsxwriter.h" int main() { /* Create a new workbook and add a worksheet. */ lxw_workbook *workbook = workbook_new("format_num_format.xlsx"); lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL); /* Widen the first column to make the text clearer. */ worksheet_set_column(worksheet, 0, 0, 30, NULL); /* Add some formats. */ lxw_format *format01 = workbook_add_format(workbook); lxw_format *format02 = workbook_add_format(workbook); lxw_format *format03 = workbook_add_format(workbook); lxw_format *format04 = workbook_add_format(workbook); lxw_format *format05 = workbook_add_format(workbook); lxw_format *format06 = workbook_add_format(workbook); lxw_format *format07 = workbook_add_format(workbook); lxw_format *format08 = workbook_add_format(workbook); lxw_format *format09 = workbook_add_format(workbook); lxw_format *format10 = workbook_add_format(workbook); lxw_format *format11 = workbook_add_format(workbook); /* Set some example number formats. */ format_set_num_format(format01, "0.000"); format_set_num_format(format02, "#,##0"); format_set_num_format(format03, "#,##0.00"); format_set_num_format(format04, "0.00"); format_set_num_format(format05, "mm/dd/yy"); format_set_num_format(format06, "mmm d yyyy"); format_set_num_format(format07, "d mmmm yyyy"); format_set_num_format(format08, "dd/mm/yyyy hh:mm AM/PM"); format_set_num_format(format09, "0 \"dollar and\" .00 \"cents\""); /* Write data using the formats. */ worksheet_write_number(worksheet, 0, 0, 3.1415926, NULL); // 3.1415926 worksheet_write_number(worksheet, 1, 0, 3.1415926, format01); // 3.142 worksheet_write_number(worksheet, 2, 0, 1234.56, format02); // 1,235 worksheet_write_number(worksheet, 3, 0, 1234.56, format03); // 1,234.56 worksheet_write_number(worksheet, 4, 0, 49.99, format04); // 49.99 worksheet_write_number(worksheet, 5, 0, 36892.521, format05); // 01/01/01 worksheet_write_number(worksheet, 6, 0, 36892.521, format06); // Jan 1 2001 worksheet_write_number(worksheet, 7, 0, 36892.521, format07); // 1 January 2001 worksheet_write_number(worksheet, 8, 0, 36892.521, format08); // 01/01/2001 12:30 AM worksheet_write_number(worksheet, 9, 0, 1.87, format09); // 1 dollar and .87 cents /* Show limited conditional number formats. */ format_set_num_format(format10, "[Green]General;[Red]-General;General"); worksheet_write_number(worksheet, 10, 0, 123, format10); // > 0 Green worksheet_write_number(worksheet, 11, 0, -45, format10); // < 0 Red worksheet_write_number(worksheet, 12, 0, 0, format10); // = 0 Default color /* Format a Zip code. */ format_set_num_format(format11, "00000"); worksheet_write_number(worksheet, 13, 0, 1209, format11); /* Close the workbook, save the file and free any memory. */ return workbook_close(workbook); }