1 /*****************************************************************************
2 * Test cases for libxlsxwriter.
3 *
4 * Test to compare output against Excel files.
5 *
6 * Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
7 *
8 */
9
10 #include "xlsxwriter.h"
11
main()12 int main() {
13
14 lxw_workbook *workbook = workbook_new("test_outline05.xlsx");
15 lxw_worksheet *worksheet2 = workbook_add_worksheet(workbook, "Collapsed Rows");
16
17 lxw_format *bold = workbook_add_format(workbook);
18 format_set_bold(bold);
19
20 lxw_row_col_options options3 = {.hidden = 1, .level = 2, .collapsed = 0};
21 lxw_row_col_options options4 = {.hidden = 1, .level = 1, .collapsed = 1};
22 lxw_row_col_options options5 = {.hidden = 0, .level = 0, .collapsed = 1};
23
24 worksheet_set_column(worksheet2, COLS("A:A"), 20, NULL);
25 worksheet_set_selection(worksheet2, RANGE("A14:A14"));
26
27 worksheet_set_row_opt(worksheet2, 1, LXW_DEF_ROW_HEIGHT, NULL, &options3);
28 worksheet_set_row_opt(worksheet2, 2, LXW_DEF_ROW_HEIGHT, NULL, &options3);
29 worksheet_set_row_opt(worksheet2, 3, LXW_DEF_ROW_HEIGHT, NULL, &options3);
30 worksheet_set_row_opt(worksheet2, 4, LXW_DEF_ROW_HEIGHT, NULL, &options3);
31 worksheet_set_row_opt(worksheet2, 5, LXW_DEF_ROW_HEIGHT, NULL, &options4);
32
33 worksheet_set_row_opt(worksheet2, 6, LXW_DEF_ROW_HEIGHT, NULL, &options3);
34 worksheet_set_row_opt(worksheet2, 7, LXW_DEF_ROW_HEIGHT, NULL, &options3);
35 worksheet_set_row_opt(worksheet2, 8, LXW_DEF_ROW_HEIGHT, NULL, &options3);
36 worksheet_set_row_opt(worksheet2, 9, LXW_DEF_ROW_HEIGHT, NULL, &options3);
37 worksheet_set_row_opt(worksheet2, 10, LXW_DEF_ROW_HEIGHT, NULL, &options4);
38 worksheet_set_row_opt(worksheet2, 11, LXW_DEF_ROW_HEIGHT, NULL, &options5);
39
40 worksheet_write_string(worksheet2, CELL("A1"), "Region", bold);
41 worksheet_write_string(worksheet2, CELL("A2"), "North" , NULL);
42 worksheet_write_string(worksheet2, CELL("A3"), "North" , NULL);
43 worksheet_write_string(worksheet2, CELL("A4"), "North" , NULL);
44 worksheet_write_string(worksheet2, CELL("A5"), "North" , NULL);
45 worksheet_write_string(worksheet2, CELL("A6"), "North Total", bold);
46
47 worksheet_write_string(worksheet2, CELL("B1"), "Sales", bold);
48 worksheet_write_number(worksheet2, CELL("B2"), 1000 , NULL);
49 worksheet_write_number(worksheet2, CELL("B3"), 1200 , NULL);
50 worksheet_write_number(worksheet2, CELL("B4"), 900 , NULL);
51 worksheet_write_number(worksheet2, CELL("B5"), 1200 , NULL);
52 worksheet_write_formula_num(worksheet2, CELL("B6"), "=SUBTOTAL(9,B2:B5)", bold, 4300);
53
54 worksheet_write_string(worksheet2, CELL("A7"), "South" , NULL);
55 worksheet_write_string(worksheet2, CELL("A8"), "South" , NULL);
56 worksheet_write_string(worksheet2, CELL("A9"), "South" , NULL);
57 worksheet_write_string(worksheet2, CELL("A10"), "South" , NULL);
58 worksheet_write_string(worksheet2, CELL("A11"), "South Total", bold);
59
60
61 worksheet_write_number(worksheet2, CELL("B7"), 400 , NULL);
62 worksheet_write_number(worksheet2, CELL("B8"), 600 , NULL);
63 worksheet_write_number(worksheet2, CELL("B9"), 500 , NULL);
64 worksheet_write_number(worksheet2, CELL("B10"), 600 , NULL);
65 worksheet_write_formula_num(worksheet2, CELL("B11"), "=SUBTOTAL(9,B7:B10)", bold, 2100);
66
67 worksheet_write_string(worksheet2, CELL("A12"), "Grand Total", bold);
68 worksheet_write_formula_num(worksheet2, CELL("B12"), "=SUBTOTAL(9,B2:B10)", bold, 6400);
69
70 return workbook_close(workbook);
71 }
72