我正在使用带有插件 OpenTBS 的 PHP 库 TinyButStrong 将现有的 Excel(或 OpenOffice Calc)电子表格与数据库中的数据合并。
这很好用,但我不知道如何为列定义摘要。
例如,我将单元格 A1 定义为与数据合并的单元格。合并后,为 A2、A3 等插入行。
问题是我事先不知道要插入多少行,所以不能将 10 行留空,并将 A11 定义为汇总字段,因为它也可能是 100 行数据,而且我想要在最后一行数据正下方的摘要。
有任何想法吗?
我正在使用带有插件 OpenTBS 的 PHP 库 TinyButStrong 将现有的 Excel(或 OpenOffice Calc)电子表格与数据库中的数据合并。
这很好用,但我不知道如何为列定义摘要。
例如,我将单元格 A1 定义为与数据合并的单元格。合并后,为 A2、A3 等插入行。
问题是我事先不知道要插入多少行,所以不能将 10 行留空,并将 A11 定义为汇总字段,因为它也可能是 100 行数据,而且我想要在最后一行数据正下方的摘要。
有任何想法吗?
合并工作表时,OpenTBS 无法跟随单元格,因为在合并期间可以随时移动、删除和复制任何单元格。
不过,我可以提出两种解决方案。
简单的解决方案:
决定将总和放在区域上方。并使用一个涵盖该区域的公式永远不可能。
ODS 文件(OpenOffice 电子表格)示例:
对于 Excel,将“odsNum”替换为“xlsxNum”,将“table:table-row”替换为“row”。
A1: = SUM(A2:A20000)
A2: [a.amount;block=table:table-row;ope=odsNum]
这样,无论块“a”可以扩展到什么,ODS 公式都保持正确。
详细解决方案:
使用引用自身上方单元格的公式。
ODS 文件(OpenOffice 电子表格)示例:
对于 Excel,将“odsNum”替换为“xlsxNum”,将“table:table-row”替换为“row”。
A1: [a.amount;block=table:table-row;ope=odsNum]
A2: =SUM( A1 : INDIRECT(ADDRESS(ROW()-1;COLUMN())) )
相同但具有固定列:
A1: [a.amount;block=table:table-row;ope=odsNum]
A2: =SUM( A1 : INDIRECT("A" & (LIGNE()-1))) )