2017-10-10 67 views
0

我目前使用TinyButStrong的Excel插件来创建定期发送的大量Excel文档。我被要求在单个Excel文档中将信息分解成单独的工作表,其中每个报表可以有不同数量的工作表(所以我不能在模板文件中使用多个工作表,因为工作表的数量是不可预测的) 。如何使用Tiny But Strong的Excel插件合并多个Excel文档?

我可以轻松创建单独的Excel文档,并使用命名约定来确定要合并哪些Excel文档,但我找不到使用TinyButStrong Excel合并文档的方法。

注:由于我们的环境,PHP Excel是不是一种选择。

请让我知道如果你知道的方式来合并多个Exc3el文件或以编程方式创建从一个单一的工作表模板创造了无数的工作表的Excel文档。

谢谢。

+0

欢迎来到堆栈溢出 - 很高兴有你。请阅读[我如何提出一个好问题?](https://stackoverflow.com/help/how-to-ask)和[如何创建一个最小,完整和可验证的示例](https:// stackoverflow。 com/help/mcve)帮助将Stack Overflows内容保持在最高级别,并增加获得正确答案的机会。 – Axel

回答

1

现在你不能合并多个XLSX文件到一个单一的一个。 这是因为,尽管阅读工作表XML源是可能的OpenTBS,你不能简单地从XLSX源文件的XML复制到另一个XLSX目标文件 因为这种XML使用若干内部IDS的风格,评论,打印设置,...这些ID存储在XML源文件中的复杂位置。 所以这样一个简单的副本将产生一个无效的目标XLSX文件。

另一点是,OpenTBS不能(现在)创建于XLSX新的工作表。它只能修改,删除或隐藏模板中的现有工作表。

因此,对于你的问题的解决方案是有包含所有你可以在最后的XLSX文件可能的工作表一个XLSX模板文件。 然后,您可以合并所需的工作表(使用OPENTBS_SELECT_SHEET)并删除不需要的工作表(使用OPENTBS_DELETE_SHEETS)。

+0

谢谢!这帮助我解决了类似的问题......我仍然希望OpenTBS能够在XLSX中创建多个工作表:) – AAA

+0

谢谢。我正在尝试,现在遇到了合并多个块的问题。当我尝试单独的MergeBlock语句如下: $ TBS-> MergeBlock('b1',$ block_b1); $ TBS-> MergeBlock('b2',$ block_b2); ...结果忽略了第一个块。 我看到关于合并多个块的注释,但在每个块中使用相同的数据: $ TBS-> MergeBlock('b1,b2,b3',$ block_data_used_in_each); ...但TBS文档中没有提到如何在每个块中合并不同的数组。 –

相关问题