From 4e64a674cebea8b92ce079cfbefe0135f61a4e56 Mon Sep 17 00:00:00 2001 From: John McNamara Date: Sun, 6 Dec 2015 23:27:12 +0000 Subject: [PATCH] Added panes documentation and example. --- dev/release/fix_example_docs.pl | 3 +- docs/images/panes.png | Bin 0 -> 71852 bytes docs/src/examples.dox | 8 ++ examples/panes.c | 129 ++++++++++++++++++++++++++++++++ include/xlsxwriter/worksheet.h | 69 +++++++++++++++-- 5 files changed, 203 insertions(+), 6 deletions(-) create mode 100644 docs/images/panes.png create mode 100644 examples/panes.c diff --git a/dev/release/fix_example_docs.pl b/dev/release/fix_example_docs.pl index 9adb4e8c..7259b37e 100644 --- a/dev/release/fix_example_docs.pl +++ b/dev/release/fix_example_docs.pl @@ -30,6 +30,7 @@ my @examples = ( [ 'autofilter.c', 'An example of a worksheet autofilter' ], [ 'headers_footers.c', 'Example of adding worksheet headers/footers' ], [ 'defined_name.c', 'Example of how to create defined names' ], + [ 'panes.c', 'Example of how to create worksheet panes' ], ); # Convert the array refs to a hash for lookups. @@ -56,7 +57,7 @@ while ( my $line = <> ) { # Warn if there are any new/unkown items. if ( !exists $examples{$example} ) { - warn "Unknown example: $example\n"; + warn "$0 Unknown example: $example\n"; } next; } diff --git a/docs/images/panes.png b/docs/images/panes.png new file mode 100644 index 0000000000000000000000000000000000000000..be238340b1caa50ca29babb8b483df5b3147e8b4 GIT binary patch literal 71852 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 TK{CVFfX8uX*Q0DF|KI-yS1K7t literal 0 HcmV?d00001 diff --git a/docs/src/examples.dox b/docs/src/examples.dox index de7105e0..835658ea 100644 --- a/docs/src/examples.dox +++ b/docs/src/examples.dox @@ -143,7 +143,15 @@ Example of how to create defined names (named ranges) using libxlsxwriter. Defined names are used to define descriptive names to represent a value, a single cell or a range of cells in a workbook or worksheet. +Next example: @ref panes.c @image html defined_name.png +@example panes.c +An example of how to create panes in a worksheet, both “freeze” panes and “split” panes. + +Back to @ref examples +@image html panes.png + + */ diff --git a/examples/panes.c b/examples/panes.c new file mode 100644 index 00000000..e5e1e962 --- /dev/null +++ b/examples/panes.c @@ -0,0 +1,129 @@ +/* + * A simple example using the libxlsxwriter library to create worksheets with + * panes. + * + * Copyright 2014-2015, John McNamara, jmcnamara@cpan.org + * + */ + +#include "xlsxwriter.h" + +int main() { + + int row; + int col; + + /* Create a new workbook and add some worksheets. */ + lxw_workbook *workbook = new_workbook("panes.xlsx"); + + lxw_worksheet *worksheet1 = workbook_add_worksheet(workbook, "Panes 1"); + lxw_worksheet *worksheet2 = workbook_add_worksheet(workbook, "Panes 2"); + lxw_worksheet *worksheet3 = workbook_add_worksheet(workbook, "Panes 3"); + lxw_worksheet *worksheet4 = workbook_add_worksheet(workbook, "Panes 4"); + + + /* Set up some formatting and text to highlight the panes. */ + lxw_format *header = workbook_add_format(workbook); + format_set_align(header, LXW_ALIGN_CENTER); + format_set_align(header, LXW_ALIGN_VERTICAL_CENTER); + format_set_fg_color(header, 0xD7E4BC); + format_set_bold(header); + format_set_border(header, LXW_BORDER_THIN); + + lxw_format *center = workbook_add_format(workbook); + format_set_align(center, LXW_ALIGN_CENTER); + + + /* + * Example 1. Freeze pane on the top row. + */ + worksheet_freeze_panes(worksheet1, 1, 0); + + /* Some sheet formatting. */ + worksheet_set_column(worksheet1, 0, 8, 16, NULL, NULL); + worksheet_set_row(worksheet1, 0, 20, NULL, NULL); + + /* Some worksheet text to demonstrate scrolling. */ + for (col = 0; col < 9; col++) { + worksheet_write_string(worksheet1, 0, col, "Scroll down", header); + } + + for (row = 1; row < 100; row++) { + for (col = 0; col < 9; col++) { + worksheet_write_number(worksheet1, row, col, row + 1, center); + } + } + + + /* + * Example 2. Freeze pane on the left column. + */ + worksheet_freeze_panes(worksheet2, 0, 1); + + /* Some sheet formatting. */ + worksheet_set_column(worksheet2, 0, 0, 16, NULL, NULL); + + /* Some worksheet text to demonstrate scrolling. */ + for (row = 0; row < 50; row++) { + worksheet_write_string(worksheet2, row, 0, "Scroll right", header); + + for (col = 1; col < 26; col++) { + worksheet_write_number(worksheet2, row, col, col, center); + } + } + + + /* + * Example 3. Freeze pane on the top row and left column. + */ + worksheet_freeze_panes(worksheet3, 1, 1); + + + /* Some sheet formatting. */ + worksheet_set_column(worksheet3, 0, 25, 16, NULL, NULL); + worksheet_set_row(worksheet3, 0, 20, NULL, NULL); + worksheet_write_string(worksheet3, 0, 0, "", header); + + + /* Some worksheet text to demonstrate scrolling. */ + for (col = 1; col < 26; col++) { + worksheet_write_string(worksheet3, 0, col, "Scroll down", header); + } + + for (row = 1; row < 50; row++) { + worksheet_write_string(worksheet3, row, 0, "Scroll right", header); + + for (col = 1; col < 26; col++) { + worksheet_write_number(worksheet3, row, col, col, center); + } + } + + + /* + * Example 4. Split pane on the top row and left column. + * + * The divisions must be specified in terms of row and column dimensions. + * The default row height is 15 and the default column width is 8.43 + */ + worksheet_split_panes(worksheet4, 15, 8.43); + + /* Some sheet formatting. */ + + /* Some worksheet text to demonstrate scrolling. */ + for (col = 1; col < 26; col++) { + worksheet_write_string(worksheet4, 0, col, "Scroll", center); + } + + for (row = 1; row < 50; row++) { + worksheet_write_string(worksheet4, row, 0, "Scroll", center); + + for (col = 1; col < 26; col++) { + worksheet_write_number(worksheet4, row, col, col, center); + } + } + + + workbook_close(workbook); + + return 0; +} diff --git a/include/xlsxwriter/worksheet.h b/include/xlsxwriter/worksheet.h index 73e9c1bc..d579906a 100644 --- a/include/xlsxwriter/worksheet.h +++ b/include/xlsxwriter/worksheet.h @@ -1181,20 +1181,79 @@ void worksheet_activate(lxw_worksheet *worksheet); */ void worksheet_select(lxw_worksheet *worksheet); -/* TODO */ +/** + * @brief Split and freeze a worksheet into panes. + * + * @param worksheet Pointer to a lxw_worksheet instance to be updated. + * @param row The cell row (zero indexed). + * @param col The cell column (zero indexed). + * + * The `%worksheet_freeze_panes()` method can be used to divide a worksheet + * into horizontal or vertical regions known as panes and to "freeze" these + * panes so that the splitter bars are not visible. + * + * The parameters `row` and `col` are used to specify the location of the + * split. It should be noted that the split is specified at the top or left of + * a cell and that the method uses zero based indexing. Therefore to freeze + * the first row of a worksheet it is necessary to specify the split at row 2 + * (which is 1 as the zero-based index). + * + * You can set one of the `row` and `col` parameters as zero if you do not + * want either a vertical or horizontal split. + * + * Examples: + * + * @code + * worksheet_freeze_panes(worksheet1, 1, 0); // Freeze the first row. + * worksheet_freeze_panes(worksheet2, 0, 1); // Freeze the first column. + * worksheet_freeze_panes(worksheet3, 1, 1); // Freeze first row/column. + * + * @endcode + * + */ void worksheet_freeze_panes(lxw_worksheet *worksheet, - lxw_row_t first_row, lxw_col_t first_col); -/* TODO */ + lxw_row_t row, lxw_col_t col); +/** + * @brief Split a worksheet into panes. + * + * @param worksheet Pointer to a lxw_worksheet instance to be updated. + * @param vertical The position for the vertical split. + * @param horizontal The position for the horizontal split. + * + * The `%worksheet_split_panes()` method can be used to divide a worksheet + * into horizontal or vertical regions known as panes. This method is + * different from the `worksheet_freeze_panes()` method in that the splits + * between the panes will be visible to the user and each pane will have its + * own scroll bars. + * + * The parameters `vertical` and `horizontal` are used to specify the vertical + * and horizontal position of the split. The units for `vertical` and + * `horizontal` are the same as those used by Excel to specify row height and + * column width. However, the vertical and horizontal units are different from + * each other. Therefore you must specify the `vertical` and `horizontal` + * parameters in terms of the row heights and column widths that you have set + * or the default values which are 15 for a row and 8.43 for a column. + * + * Examples: + * + * @code + * worksheet_split_panes(worksheet1, 15, 0); // First row. + * worksheet_split_panes(worksheet2, 0, 8.43); // First column. + * worksheet_split_panes(worksheet3, 15, 8.43); // First row and column. + * + * @endcode + * + */ void worksheet_split_panes(lxw_worksheet *worksheet, double vertical, double horizontal); -/* Infrequent options. Undocumented for now. */ +/* worksheet_freeze_panes() with infrequent options. Undocumented for now. */ void worksheet_freeze_panes_opt(lxw_worksheet *worksheet, lxw_row_t first_row, lxw_col_t first_col, lxw_row_t top_row, lxw_col_t left_col, uint8_t type); -/* Infrequent options. Undocumented for now. */ +/* worksheet_split_panes() with infrequent options. Undocumented for now. */ void worksheet_split_panes_opt(lxw_worksheet *worksheet, double vertical, double horizontal, lxw_row_t top_row, lxw_col_t left_col);