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