mirror of
https://github.com/jmcnamara/libxlsxwriter
synced 2025-03-28 21:13:14 +00:00
133 lines
4.4 KiB
C
133 lines
4.4 KiB
C
/*
|
|
* This program shows several examples of how to set up headers and
|
|
* footers with libxlsxwriter.
|
|
*
|
|
* The control characters used in the header/footer strings are:
|
|
*
|
|
* Control Category Description
|
|
* ======= ======== ===========
|
|
* &L Justification Left
|
|
* &C Center
|
|
* &R Right
|
|
*
|
|
* &P Information Page number
|
|
* &N Total number of pages
|
|
* &D Date
|
|
* &T Time
|
|
* &F File name
|
|
* &A Worksheet name
|
|
*
|
|
* &fontsize Font Font size
|
|
* &"font,style" Font name and style
|
|
* &U Single underline
|
|
* &E Double underline
|
|
* &S Strikethrough
|
|
* &X Superscript
|
|
* &Y Subscript
|
|
*
|
|
* &[Picture] Images Image placeholder
|
|
* &G Same as &[Picture]
|
|
*
|
|
* && Miscellaneous Literal ampersand &
|
|
*
|
|
* Copyright 2014-2025, John McNamara, jmcnamara@cpan.org
|
|
*
|
|
*/
|
|
|
|
#include "xlsxwriter.h"
|
|
|
|
|
|
int main() {
|
|
|
|
lxw_workbook *workbook = workbook_new("headers_footers.xlsx");
|
|
|
|
char preview[] = "Select Print Preview to see the header and footer";
|
|
|
|
/*
|
|
* A simple example to start
|
|
*/
|
|
lxw_worksheet *worksheet1 = workbook_add_worksheet(workbook, "Simple");
|
|
char header1[] = "&CHere is some centered text.";
|
|
char footer1[] = "&LHere is some left aligned text.";
|
|
|
|
worksheet_set_header(worksheet1, header1);
|
|
worksheet_set_footer(worksheet1, footer1);
|
|
|
|
worksheet_set_column(worksheet1, 0, 0, 50, NULL);
|
|
worksheet_write_string(worksheet1, 0, 0, preview, NULL);
|
|
|
|
|
|
/*
|
|
* A simple example to start
|
|
*/
|
|
lxw_worksheet *worksheet2 = workbook_add_worksheet(workbook, "Image");
|
|
lxw_header_footer_options header_options = {.image_left = "logo_small.png"};
|
|
|
|
worksheet_set_header_opt(worksheet2, "&L&[Picture]", &header_options);
|
|
|
|
worksheet_set_margins(worksheet2, -1, -1, 1.3, -1);
|
|
worksheet_set_column(worksheet2, 0, 0, 50, NULL);
|
|
worksheet_write_string(worksheet2, 0, 0, preview, NULL);
|
|
|
|
|
|
/*
|
|
* This is an example of some of the header/footer variables.
|
|
*/
|
|
lxw_worksheet *worksheet3 = workbook_add_worksheet(workbook, "Variables");
|
|
char header3[] = "&LPage &P of &N" "&CFilename: &F" "&RSheetname: &A";
|
|
char footer3[] = "&LCurrent date: &D" "&RCurrent time: &T";
|
|
lxw_row_t breaks[] = {20, 0};
|
|
|
|
worksheet_set_header(worksheet3, header3);
|
|
worksheet_set_footer(worksheet3, footer3);
|
|
|
|
worksheet_set_column(worksheet3, 0, 0, 50, NULL);
|
|
worksheet_write_string(worksheet3, 0, 0, preview, NULL);
|
|
|
|
worksheet_set_h_pagebreaks(worksheet3, breaks);
|
|
worksheet_write_string(worksheet3, 20, 0, "Next page", NULL);
|
|
|
|
|
|
/*
|
|
* This example shows how to use more than one font.
|
|
*/
|
|
lxw_worksheet *worksheet4 = workbook_add_worksheet(workbook, "Mixed fonts");
|
|
char header4[] = "&C&\"Courier New,Bold\"Hello &\"Arial,Italic\"World";
|
|
char footer4[] = "&C&\"Symbol\"e&\"Arial\" = mc&X2";
|
|
|
|
worksheet_set_header(worksheet4, header4);
|
|
worksheet_set_footer(worksheet4, footer4);
|
|
|
|
worksheet_set_column(worksheet4, 0, 0, 50, NULL);
|
|
worksheet_write_string(worksheet4, 0, 0, preview, NULL);
|
|
|
|
|
|
/*
|
|
* Example of line wrapping.
|
|
*/
|
|
lxw_worksheet *worksheet5 = workbook_add_worksheet(workbook, "Word wrap");
|
|
char header5[] = "&CHeading 1\nHeading 2";
|
|
|
|
worksheet_set_header(worksheet5, header5);
|
|
|
|
worksheet_set_column(worksheet5, 0, 0, 50, NULL);
|
|
worksheet_write_string(worksheet5, 0, 0, preview, NULL);
|
|
|
|
|
|
/*
|
|
* Example of inserting a literal ampersand &
|
|
*/
|
|
lxw_worksheet *worksheet6 = workbook_add_worksheet(workbook, "Ampersand");
|
|
char header6[] = "&CCuriouser && Curiouser - Attorneys at Law";
|
|
|
|
worksheet_set_header(worksheet6, header6);
|
|
|
|
worksheet_set_column(worksheet6, 0, 0, 50, NULL);
|
|
worksheet_write_string(worksheet6, 0, 0, preview, NULL);
|
|
|
|
|
|
workbook_close(workbook);
|
|
|
|
return 0;
|
|
}
|