用rubyzip压缩的xlsx无法用Excel读取
|
我正在编写可以读取/写入Excel xlsx文件的代码。 xlsx文件只是几个xml文件的zip存档,因此为了测试我是否可以编写文件,我使用了一个名为
rubyzip
的gem来解压缩xlsx文件,然后立即将其压缩回一个新的存档中,而无需修改数据。但是,执行此操作时,无法打开新的excel文件,据说该文件已损坏。
另外,如果我使用Mac OS X的Archive Utility(用于处理zip文件的本机应用程序),并且解压缩并重新压缩excel文件,则数据不会损坏,并且可以在Excel中打开生成的文件。
我发现不是“ 0”的“解压缩”功能会“破坏”数据,而是压缩过程。 (实际上,当我在rubyzip
创建的新zip文件上使用Archive Utility时,Excel再次可以读取该文件)。
我想知道为什么会这样,以及有什么解决方案可以通过Excel可读的方式以编程方式压缩内容。
我的压缩代码:
def compress(path)
path.sub!(%r[/$],\'\')
archive = File.join(path,File.basename(path))+\'.zip\'
FileUtils.rm archive, :force=>true
Zip::ZipFile.open(archive, \'w\') do |zipfile|
Dir[\"#{path}/**/**\"].reject{|f|f==archive}.each do |file|
temp = file
zipfile.add(file.sub(path+\'/\',\'\'),file)
end
end
end
没有找到相关结果
已邀请:
1 个回复
仿普