我正在编写一个CL库来阅读名为“xlmanip”的MS Excel(tm)电子表格(尚未准备好黄金时段 - 仅读取“xlsx”电子表格,适用于“我想要的80%用例”对细胞内容进行操作“......但我离题了。”
在阅读“xlsx”(XML格式的ZIP存档)时,让我担心的一件事是,当前的ZIP处理库Common Lisp ZIP将压缩内容解压缩为(vector (unsigned-byte 8))
。对于大型电子表格,这会给最终用户带来问题。
我想到的一个替代方案是延迟加载 - let-over-lambda一个闭包,可以在需要时有效地要求加载工作表。然而,这只是推迟了不可避免的事情。
是否有任何ZIP文件CL库将灰色流返回到ZIP组件的内容而不是(可能很大)(vector (unsigned-byte 8))
?
修改:澄清
我正在寻找返回流的ZIP组件功能,而不是接收流的功能。采用流的函数将ZIP组件的内容直接写入与流关联的文件。我宁愿 xlmanip 直接从流中读取,就像ZIP组件(隐式地,虚拟地)是一个文件一样。