From 269442101c0b76dbc1425161bd54708fc3729254 Mon Sep 17 00:00:00 2001 From: John McNamara Date: Fri, 17 Apr 2015 23:54:05 +0100 Subject: [PATCH] Initial autofilter support. --- docs/images/autofilter.png | Bin 0 -> 98877 bytes include/xlsxwriter/worksheet.h | 45 +++++++++ src/packager.c | 4 +- src/workbook.c | 25 ++++- src/worksheet.c | 72 ++++++++++++++ test/functional/src/test_autofilter00.c | 95 ++++++++++++++++++ test/functional/src/test_autofilter01.c | 99 +++++++++++++++++++ test/functional/test_autofilter.py | 22 +++++ test/functional/xlsx_files/autofilter00.xlsx | Bin 0 -> 8625 bytes test/functional/xlsx_files/autofilter01.xlsx | Bin 0 -> 8701 bytes 10 files changed, 360 insertions(+), 2 deletions(-) create mode 100644 docs/images/autofilter.png create mode 100644 test/functional/src/test_autofilter00.c create mode 100644 test/functional/src/test_autofilter01.c create mode 100644 test/functional/test_autofilter.py create mode 100644 test/functional/xlsx_files/autofilter00.xlsx create mode 100644 test/functional/xlsx_files/autofilter01.xlsx diff --git a/docs/images/autofilter.png b/docs/images/autofilter.png new file mode 100644 index 0000000000000000000000000000000000000000..617f0988fa66098b84e0250ea47eae0f6742d1a0 GIT binary patch literal 98877 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 ad=OTCh}3ZmH&Ocw_yKD|G|+eLpZ`B!h1hQZ literal 0 HcmV?d00001 diff --git a/include/xlsxwriter/worksheet.h b/include/xlsxwriter/worksheet.h index e417f8a1..e8dff52d 100644 --- a/include/xlsxwriter/worksheet.h +++ b/include/xlsxwriter/worksheet.h @@ -177,6 +177,14 @@ typedef struct lxw_print_area { lxw_col_t last_col; } lxw_print_area; +typedef struct lxw_autofilter { + uint8_t in_use; + lxw_row_t first_row; + lxw_row_t last_row; + lxw_col_t first_col; + lxw_col_t last_col; +} lxw_autofilter; + /** * @brief Header and footer options. * @@ -269,6 +277,7 @@ typedef struct lxw_worksheet { struct lxw_repeat_rows repeat_rows; struct lxw_repeat_cols repeat_cols; struct lxw_print_area print_area; + struct lxw_autofilter autofilter; uint16_t merged_range_count; @@ -894,6 +903,42 @@ uint8_t worksheet_merge_range(lxw_worksheet *worksheet, lxw_row_t first_row, lxw_col_t last_col, const char *string, lxw_format *format); +/** + * @brief Set the autofilter area in the worksheet. + * + * @param worksheet Pointer to a lxw_worksheet instance to be updated. + * @param first_row The first row of the range. (All zero indexed.) + * @param first_col The first column of the range. + * @param last_row The last row of the range. + * @param last_col The last col of the range. + * + * @return 0 for success, non-zero on error. + * + * The `%worksheet_autofilter()` method allows an autofilter to be added to a + * worksheet. + * + * An autofilter is a way of adding drop down lists to the headers of a 2D + * range of worksheet data. This allows users to filter the data based on + * simple criteria so that some data is shown and some is hidden. + * + * @image html autofilter.png + * + * To add an autofilter to a worksheet: + * + * @code + * worksheet_autofilter(worksheet, 0, 0, 50, 3); + * + * // Same as above using the RANGE() macro. + * worksheet_autofilter(worksheet, RANGE("A1:D51")); + * @endcode + * + * Note: it isn't currently possible to apply filter conditions to the + * autofilter. + */ +uint8_t worksheet_autofilter(lxw_worksheet *worksheet, lxw_row_t first_row, + lxw_col_t first_col, lxw_row_t last_row, + lxw_col_t last_col); + /** * @brief Make a worksheet the active, i.e., visible worksheet. * diff --git a/src/packager.c b/src/packager.c index c9b00410..8d87c6eb 100644 --- a/src/packager.c +++ b/src/packager.c @@ -187,7 +187,9 @@ _write_app_file(lxw_packager *self) /* Add the Named Ranges parts. */ TAILQ_FOREACH(defined_name, workbook->defined_names, list_pointers) { - tmp_name = strstr(defined_name->name, "_xlnm.ZZZ"); + + /*Ignore autofilters. */ + tmp_name = strstr(defined_name->name, "FilterDatabase"); if (!tmp_name) { _add_part_name(app, defined_name->app_name); diff --git a/src/workbook.c b/src/workbook.c index 76c47e76..d95d4fae 100644 --- a/src/workbook.c +++ b/src/workbook.c @@ -526,10 +526,33 @@ _prepare_defined_names(lxw_workbook *self) STAILQ_FOREACH(worksheet, self->worksheets, list_pointers) { + /* + * Check for autofilter settings. + */ + if (worksheet->autofilter.in_use) { + + /* Autofilters are different to other defined names. They are + * hidden and thus not stored in the App file. This entry + * will be filtered out in the Packager module. */ + strncat(app_name, "FilterDatabase", LXW_DEFINED_NAME_LENGTH - 1); + + lxw_range_abs(area, + worksheet->autofilter.first_row, + worksheet->autofilter.first_col, + worksheet->autofilter.last_row, + worksheet->autofilter.last_col); + + __builtin_snprintf(range, LXW_DEFINED_NAME_LENGTH - 1, "%s!%s", + worksheet->quoted_name, area); + + _store_defined_name(self, "_xlnm._FilterDatabase", app_name, + range, worksheet->index, LXW_TRUE); + } + /* * Check for Print Area settings. */ - if (worksheet->print_area.in_use) { + else if (worksheet->print_area.in_use) { __builtin_snprintf(app_name, LXW_DEFINED_NAME_LENGTH - 1, "%s!Print_Area", worksheet->quoted_name); diff --git a/src/worksheet.c b/src/worksheet.c index 08c71994..0dc952a1 100644 --- a/src/worksheet.c +++ b/src/worksheet.c @@ -1558,6 +1558,32 @@ _worksheet_write_col_breaks(lxw_worksheet *self) _FREE_ATTRIBUTES(); } +/* + * Write the element. + */ +STATIC void +_worksheet_write_auto_filter(lxw_worksheet *self) +{ + struct xml_attribute_list attributes; + struct xml_attribute *attribute; + char range[MAX_CELL_RANGE_LENGTH]; + + if (!self->autofilter.in_use) + return; + + lxw_range(range, + self->autofilter.first_row, + self->autofilter.first_col, + self->autofilter.last_row, self->autofilter.last_col); + + _INIT_ATTRIBUTES(); + _PUSH_ATTRIBUTES_STR("ref", range); + + _xml_empty_tag(self->file, "autoFilter", &attributes); + + _FREE_ATTRIBUTES(); +} + /* * Assemble and write the XML file. */ @@ -1591,6 +1617,9 @@ _worksheet_assemble_xml_file(lxw_worksheet *self) else _worksheet_write_optimized_sheet_data(self); + /* Write the autoFilter element. */ + _worksheet_write_auto_filter(self); + /* Write the mergeCells element. */ _worksheet_write_merge_cells(self); @@ -2129,6 +2158,49 @@ worksheet_merge_range(lxw_worksheet *self, lxw_row_t first_row, return 0; } +/* + * Set the autofilter area in the worksheet. + */ +uint8_t +worksheet_autofilter(lxw_worksheet *self, lxw_row_t first_row, + lxw_col_t first_col, lxw_row_t last_row, + lxw_col_t last_col) +{ + lxw_row_t tmp_row; + lxw_col_t tmp_col; + int8_t err; + + /* Excel doesn't allow a single cell to be merged */ + if (first_row == last_row && first_col == last_col) + return 1; + + /* Swap last row/col with first row/col as necessary */ + if (first_row > last_row) { + tmp_row = last_row; + last_row = first_row; + first_row = tmp_row; + } + if (first_col > last_col) { + tmp_col = last_col; + last_col = first_col; + first_col = tmp_col; + } + + /* Check that column number is valid and store the max value */ + err = _check_dimensions(self, last_row, last_col, LXW_FALSE, LXW_FALSE); + + if (err) + return err; + + self->autofilter.in_use = LXW_TRUE; + self->autofilter.first_row = first_row; + self->autofilter.first_col = first_col; + self->autofilter.last_row = last_row; + self->autofilter.last_col = last_col; + + return 0; +} + /* * Set this worksheet as a selected worksheet, i.e. the worksheet has its tab * highlighted. diff --git a/test/functional/src/test_autofilter00.c b/test/functional/src/test_autofilter00.c new file mode 100644 index 00000000..6b870789 --- /dev/null +++ b/test/functional/src/test_autofilter00.c @@ -0,0 +1,95 @@ +/***************************************************************************** + * Test cases for libxlsxwriter. + * + * Test to compare output against Excel files. + * + * Copyright 2014-2015, John McNamara, jmcnamara@cpan.org + * + */ + +#include "xlsxwriter.h" + +int main() { + + lxw_workbook *workbook = new_workbook("test_autofilter00.xlsx"); + lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL); + uint16_t i; + + struct row { + char region[16]; + char item[16]; + int volume; + char month[16]; + }; + + struct row data[] = { + {"East", "Apple", 9000, "July" }, + {"East", "Apple", 5000, "July" }, + {"South", "Orange", 9000, "September" }, + {"North", "Apple", 2000, "November" }, + {"West", "Apple", 9000, "November" }, + {"South", "Pear", 7000, "October" }, + {"North", "Pear", 9000, "August" }, + {"West", "Orange", 1000, "December" }, + {"West", "Grape", 1000, "November" }, + {"South", "Pear", 10000, "April" }, + {"West", "Grape", 6000, "January" }, + {"South", "Orange", 3000, "May" }, + {"North", "Apple", 3000, "December" }, + {"South", "Apple", 7000, "February" }, + {"West", "Grape", 1000, "December" }, + {"East", "Grape", 8000, "February" }, + {"South", "Grape", 10000, "June" }, + {"West", "Pear", 7000, "December" }, + {"South", "Apple", 2000, "October" }, + {"East", "Grape", 7000, "December" }, + {"North", "Grape", 6000, "April" }, + {"East", "Pear", 8000, "February" }, + {"North", "Apple", 7000, "August" }, + {"North", "Orange", 7000, "July" }, + {"North", "Apple", 6000, "June" }, + {"South", "Grape", 8000, "September" }, + {"West", "Apple", 3000, "October" }, + {"South", "Orange", 10000, "November" }, + {"West", "Grape", 4000, "July" }, + {"North", "Orange", 5000, "August" }, + {"East", "Orange", 1000, "November" }, + {"East", "Orange", 4000, "October" }, + {"North", "Grape", 5000, "August" }, + {"East", "Apple", 1000, "December" }, + {"South", "Apple", 10000, "March" }, + {"East", "Grape", 7000, "October" }, + {"West", "Grape", 1000, "September" }, + {"East", "Grape", 10000, "October" }, + {"South", "Orange", 8000, "March" }, + {"North", "Apple", 4000, "July" }, + {"South", "Orange", 5000, "July" }, + {"West", "Apple", 4000, "June" }, + {"East", "Apple", 5000, "April" }, + {"North", "Pear", 3000, "August" }, + {"East", "Grape", 9000, "November" }, + {"North", "Orange", 8000, "October" }, + {"East", "Apple", 10000, "June" }, + {"South", "Pear", 1000, "December" }, + {"North", "Grape", 10000, "July" }, + {"East", "Grape", 6000, "February" } + }; + + + /* Write the column headers. */ + worksheet_write_string(worksheet, 0, 0, "Region", NULL); + worksheet_write_string(worksheet, 0, 1, "Item", NULL); + worksheet_write_string(worksheet, 0, 2, "Volume" , NULL); + worksheet_write_string(worksheet, 0, 3, "Month", NULL); + + + /* Write the row data. */ + for (i = 0; i < sizeof(data)/sizeof(struct row); i++) { + worksheet_write_string(worksheet, i + 1, 0, data[i].region, NULL); + worksheet_write_string(worksheet, i + 1, 1, data[i].item, NULL); + worksheet_write_number(worksheet, i + 1, 2, data[i].volume , NULL); + worksheet_write_string(worksheet, i + 1, 3, data[i].month, NULL); + } + + return workbook_close(workbook); +} diff --git a/test/functional/src/test_autofilter01.c b/test/functional/src/test_autofilter01.c new file mode 100644 index 00000000..b9b35795 --- /dev/null +++ b/test/functional/src/test_autofilter01.c @@ -0,0 +1,99 @@ +/***************************************************************************** + * Test cases for libxlsxwriter. + * + * Test to compare output against Excel files. + * + * Copyright 2014-2015, John McNamara, jmcnamara@cpan.org + * + */ + +#include "xlsxwriter.h" + +int main() { + + lxw_workbook *workbook = new_workbook("test_autofilter01.xlsx"); + lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL); + uint16_t i; + + struct row { + char region[16]; + char item[16]; + int volume; + char month[16]; + }; + + struct row data[] = { + {"East", "Apple", 9000, "July" }, + {"East", "Apple", 5000, "July" }, + {"South", "Orange", 9000, "September" }, + {"North", "Apple", 2000, "November" }, + {"West", "Apple", 9000, "November" }, + {"South", "Pear", 7000, "October" }, + {"North", "Pear", 9000, "August" }, + {"West", "Orange", 1000, "December" }, + {"West", "Grape", 1000, "November" }, + {"South", "Pear", 10000, "April" }, + {"West", "Grape", 6000, "January" }, + {"South", "Orange", 3000, "May" }, + {"North", "Apple", 3000, "December" }, + {"South", "Apple", 7000, "February" }, + {"West", "Grape", 1000, "December" }, + {"East", "Grape", 8000, "February" }, + {"South", "Grape", 10000, "June" }, + {"West", "Pear", 7000, "December" }, + {"South", "Apple", 2000, "October" }, + {"East", "Grape", 7000, "December" }, + {"North", "Grape", 6000, "April" }, + {"East", "Pear", 8000, "February" }, + {"North", "Apple", 7000, "August" }, + {"North", "Orange", 7000, "July" }, + {"North", "Apple", 6000, "June" }, + {"South", "Grape", 8000, "September" }, + {"West", "Apple", 3000, "October" }, + {"South", "Orange", 10000, "November" }, + {"West", "Grape", 4000, "July" }, + {"North", "Orange", 5000, "August" }, + {"East", "Orange", 1000, "November" }, + {"East", "Orange", 4000, "October" }, + {"North", "Grape", 5000, "August" }, + {"East", "Apple", 1000, "December" }, + {"South", "Apple", 10000, "March" }, + {"East", "Grape", 7000, "October" }, + {"West", "Grape", 1000, "September" }, + {"East", "Grape", 10000, "October" }, + {"South", "Orange", 8000, "March" }, + {"North", "Apple", 4000, "July" }, + {"South", "Orange", 5000, "July" }, + {"West", "Apple", 4000, "June" }, + {"East", "Apple", 5000, "April" }, + {"North", "Pear", 3000, "August" }, + {"East", "Grape", 9000, "November" }, + {"North", "Orange", 8000, "October" }, + {"East", "Apple", 10000, "June" }, + {"South", "Pear", 1000, "December" }, + {"North", "Grape", 10000, "July" }, + {"East", "Grape", 6000, "February" } + }; + + + /* Write the column headers. */ + worksheet_write_string(worksheet, 0, 0, "Region", NULL); + worksheet_write_string(worksheet, 0, 1, "Item", NULL); + worksheet_write_string(worksheet, 0, 2, "Volume" , NULL); + worksheet_write_string(worksheet, 0, 3, "Month", NULL); + + + /* Write the row data. */ + for (i = 0; i < sizeof(data)/sizeof(struct row); i++) { + worksheet_write_string(worksheet, i + 1, 0, data[i].region, NULL); + worksheet_write_string(worksheet, i + 1, 1, data[i].item, NULL); + worksheet_write_number(worksheet, i + 1, 2, data[i].volume , NULL); + worksheet_write_string(worksheet, i + 1, 3, data[i].month, NULL); + } + + + worksheet_autofilter(worksheet, 0, 0, 50, 3); + + + return workbook_close(workbook); +} diff --git a/test/functional/test_autofilter.py b/test/functional/test_autofilter.py new file mode 100644 index 00000000..e4d4940e --- /dev/null +++ b/test/functional/test_autofilter.py @@ -0,0 +1,22 @@ +############################################################################### +# +# Tests for libxlsxwriter. +# +# Copyright 2014-2015, John McNamara, jmcnamara@cpan.org +# + +import base_test_class + +class TestCompareXLSXFiles(base_test_class.XLSXBaseTest): + """ + Test file created with libxlsxwriter against a file created by Excel. + + """ + + def test_autofilter00(self): + self.run_exe_test('test_autofilter00') + + def test_autofilter01(self): + self.run_exe_test('test_autofilter01') + + diff --git a/test/functional/xlsx_files/autofilter00.xlsx b/test/functional/xlsx_files/autofilter00.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..bb123526f8566e6f0d48d201d20d2e5cbd030dfc GIT binary patch literal 8625 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 Xp{5Et(z^fv4)PO(%+xgWKfnDCc<3Rz literal 0 HcmV?d00001 diff --git a/test/functional/xlsx_files/autofilter01.xlsx b/test/functional/xlsx_files/autofilter01.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fa923adfff42abc62f3a8a99a4668bdbac33d2eb GIT binary patch literal 8701 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 BM~eUe literal 0 HcmV?d00001