gpt4 book ai didi

excel - 如何仅使用 .xla 文件中的代码从 Excel VBA 进行 GZip 压缩文件?

转载 作者:行者123 更新时间:2023-12-02 10:07:01 25 4
gpt4 key购买 nike

我需要能够在 Excel VBA 函数中使用 GZip 压缩文件。具体来说,我需要能够使用“deflate”算法。

有没有一种方法可以在不必执行命令行应用程序的情况下执行此操作?由于不依赖外部工具,代码将更加健壮。

理想情况下,代码将利用预安装的 VBA 或 COM 库函数 - 我不想自己实现此逻辑或安装 DLL 等。

如果可能的话,我希望该功能的安装就像将 .xla 添加到可用的 Excel 加载项一样简单。不需要 DLL、EXE、注册表项等。

编辑我可以使用 .NET GZipStream 来执行此操作吗?

最佳答案

VBA(实际上是 VB6 的一种方言)对于此类应用程序来说速度很慢。我记得我曾经在 VB6 和 C 上实现了 Shannon-Fano 算法,C 版本的速度大约是 10 倍,即使在变成 DLLMain 并从那里调用而不是在命令行可执行文件上调用之后也是如此。

有很多提供压缩服务的 COM DLL,包括开源的和共享软件的,其中一些实现了 GZIP 的 deflate 算法。只需从 VBA 代码中调用此类 DLL 中的一个函数来代表您进行压缩,这将非常简单。

我理解您不愿意使用应用程序外部的东西,但在这种情况下,您可能必须为了性能而应用异常(exception)。

为了彻底破坏您的乐趣,请检查 windows\system32 上的文件 ZIPFLDR.DLL。您可能还想查看这些链接:

通过谷歌搜索找到了这两个例子,您应该能够找到更多/更好的示例。

关于excel - 如何仅使用 .xla 文件中的代码从 Excel VBA 进行 GZip 压缩文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/167888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com