Add docs and examples for dynamic arrays.

Feature request #327
This commit is contained in:
John McNamara 2021-07-07 23:33:26 +01:00
parent 22612d9a62
commit d72da755f0
24 changed files with 930 additions and 21 deletions

View file

@ -0,0 +1,21 @@
/*****************************************************************************
* Test cases for libxlsxwriter.
*
* Test to compare output against Excel files.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "xlsxwriter.h"
int main() {
lxw_workbook *workbook = workbook_new("test_dynamic_array02.xlsx");
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
worksheet_write_dynamic_formula(worksheet, CELL("B1"), "=_xlfn.UNIQUE(A1)", NULL);
worksheet_write_number(worksheet, CELL("A1"), 0 , NULL);
return workbook_close(workbook);
}

View file

@ -0,0 +1,20 @@
/*****************************************************************************
* Test cases for libxlsxwriter.
*
* Test to compare output against Excel files.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "xlsxwriter.h"
int main() {
lxw_workbook *workbook = workbook_new("test_dynamic_array03.xlsx");
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
worksheet_write_formula_num(worksheet, CELL("A1"), "=1+_xlfn.XOR(1)", NULL, 2);
return workbook_close(workbook);
}

View file

@ -0,0 +1,22 @@
/*****************************************************************************
* Test cases for libxlsxwriter.
*
* Test to compare output against Excel files.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "xlsxwriter.h"
int main() {
lxw_workbook *workbook = workbook_new("test_dynamic_array51.xlsx");
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
worksheet_write_dynamic_array_formula_num(worksheet, RANGE("A1:A1"), "=AVERAGE(TIMEVALUE(B1:B2))", NULL, 0);
worksheet_write_string(worksheet, CELL("B1"), "12:00" , NULL);
worksheet_write_string(worksheet, CELL("B2"), "12:00" , NULL);
return workbook_close(workbook);
}

View file

@ -0,0 +1,22 @@
/*****************************************************************************
* Test cases for libxlsxwriter.
*
* Test to compare output against Excel files.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "xlsxwriter.h"
int main() {
lxw_workbook *workbook = workbook_new("test_dynamic_array52.xlsx");
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
worksheet_write_dynamic_formula(worksheet, CELL("A1"), "=AVERAGE(TIMEVALUE(B1:B2))", NULL);
worksheet_write_string(worksheet, CELL("B1"), "12:00" , NULL);
worksheet_write_string(worksheet, CELL("B2"), "12:00" , NULL);
return workbook_close(workbook);
}

View file

@ -0,0 +1,22 @@
/*****************************************************************************
* Test cases for libxlsxwriter.
*
* Test to compare output against Excel files.
*
* Copyright 2014-2021, John McNamara, jmcnamara@cpan.org
*
*/
#include "xlsxwriter.h"
int main() {
lxw_workbook *workbook = workbook_new("test_dynamic_array53.xlsx");
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
worksheet_write_dynamic_formula_num(worksheet, CELL("A1"), "=AVERAGE(TIMEVALUE(B1:B2))", NULL, 0);
worksheet_write_string(worksheet, CELL("B1"), "12:00" , NULL);
worksheet_write_string(worksheet, CELL("B2"), "12:00" , NULL);
return workbook_close(workbook);
}

View file

@ -15,3 +15,19 @@ class TestCompareXLSXFiles(base_test_class.XLSXBaseTest):
def test_dynamic_array01(self):
self.run_exe_test('test_dynamic_array01')
def test_dynamic_array02(self):
self.run_exe_test('test_dynamic_array02')
def test_dynamic_array03(self):
self.run_exe_test('test_dynamic_array03')
# Some variant of the default test case.
def test_dynamic_array51(self):
self.run_exe_test('test_dynamic_array51', 'dynamic_array01.xlsx')
def test_dynamic_array52(self):
self.run_exe_test('test_dynamic_array52', 'dynamic_array01.xlsx')
def test_dynamic_array53(self):
self.run_exe_test('test_dynamic_array53', 'dynamic_array01.xlsx')

Binary file not shown.

Binary file not shown.