Excel::Writer::XLSX (Perl) 工作表内省

问题描述 投票:0回答:2

有一段时间我想知道这个模块是否/何时可以获得一些内省能力,而不仅仅是黑客攻击对象。

例如:

写入工作表后,如何查询工作表对象以了解其有多少行和列等信息?

我想做的是写很多张纸,然后返回每张纸并写入更多行。我可以自己跟踪最后一行/列,但在这样做之前,我想知道是否可以在最后的

workbook->close
之前从已写入的对象中获取该数据。

我认为我可以计算工作表对象的

_table
散列中的键数,但这可能太接近金属而无法成为“官方”。我记得 John 在 CPAN 文档中的某个地方说过不要这样做。

perl excel-writer-xlsx
2个回答
2
投票

我可以自己跟踪最后一行/列,但在这样做之前,我想知道是否可以在最终工作簿 -> 关闭之前从已写入的对象中获取该数据。

不。那是不可能的。 Excel::Writer::XLSX 不提供任何工具来在数据跨越 API 后进行内省。这是一个经过深思熟虑的设计决定。您应该将 Excel::Writer::XLSX 对象视为黑匣子而不是某种数据库。

实现您想要的效果的最佳方法是跟踪程序中的范围数据。


0
投票

我意识到这是一篇旧帖子,但是......

在查看用于

Excel::Writer::XLSX
的各种软件包时,我发现了
_dim_rowmax

$ws->autofilter( 0, 0, $ws->{_dim_rowmax}, 28 );

我认为

_
是为了指示私有变量,但它似乎有效。

我正在创建一个脚本,以便能够为 XLSX 文件实现与

Spreadsheet::ParseExcel::SaveParser
相同的功能。

© www.soinside.com 2019 - 2024. All rights reserved.