libxlsxwriter
|
In the previous section we created a simple spreadsheet with formatting using C and the libxlsxwriter
module.
This time let's extend the data we want to write to include some dates:
Item | Date | Cost |
---|---|---|
Rent | 2013-01-13 | 1000 |
Gas | 2013-01-14 | 100 |
Food | 2013-01-16 | 300 |
Gym | 2013-01-20 | 50 |
The corresponding spreadsheet will look like this:
The differences here are that we have added a Date column with formatting and made that column a little wider to accommodate the dates.
To do this we can extend our program as follows:
The main difference between this and the previous program is that we have added a new Format object for dates and we have additional handling for the date information.
We have also extended the data that we are going to write to include a lxw_datetime struct to hold the date information. We will see how that is used shortly.
Excel treats different types of input data, such as strings and numbers, differently although it generally does it transparently to the user. Libxlsxwriter tries to emulate this in the worksheet_write*()
functions by mapping C data types to types that Excel supports.
In this version of our program we have used some of these functions for different types of data:
The handling of dates is also new to our program.
Dates and times in Excel are floating point numbers that have a number format applied to display them in the correct format. Libxlsxwriter provides the worksheet_write_datetime() and the lxw_datetime struct help to convert dates and times into Excel date and time numbers.
The worksheet_write_datetime() function converts the lxw_datetime struct to a number that represents an Excel date but we also need to add the number format to ensure that Excel displays it as as date:
Date handling is explained in more detail in Working with Dates and Times.
That completes the tutorial section.
In the next sections we will look at the API in more detail starting with workbook.
Next: The Workbook object