Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel Delphi System.Zip xlsx LibreOffice_Excel_Delphi_Zip_Xlsx_Libreoffice - Fatal编程技术网

Excel Delphi System.Zip xlsx LibreOffice

Excel Delphi System.Zip xlsx LibreOffice,excel,delphi,zip,xlsx,libreoffice,Excel,Delphi,Zip,Xlsx,Libreoffice,我的系统是WIN7 64,我使用Delphi XE7组件创建.xlsx文件。举个例子 这些文件可以用MS Office打开(没问题),但用LibreOffice我不能打开,因为我有一个错误:“文件已损坏,无法打开…”。怀疑是System.Zip错误地打包了文件 libreofficecalc没有显示任何关于它为什么不能打开我的文件的详细信息。我不知道如何开始逐项列出这个问题 为了理解归档方法中的原因,我做了以下工作。 解包文件并使用WinRar再次打包。 将其重命名为*.xlsx和vuala 现

我的系统是WIN7 64,我使用Delphi XE7组件创建.xlsx文件。举个例子

这些文件可以用MS Office打开(没问题),但用LibreOffice我不能打开,因为我有一个错误:“文件已损坏,无法打开…”。怀疑是System.Zip错误地打包了文件

libreofficecalc没有显示任何关于它为什么不能打开我的文件的详细信息。我不知道如何开始逐项列出这个问题

为了理解归档方法中的原因,我做了以下工作。 解包文件并使用WinRar再次打包。 将其重命名为*.xlsx和vuala

现在我可以打开它了

这是重新打包的新文件

我使用XE2 System.Zip创建ODS和XLSX,OpenOffice.org可以很好地打开它们

您可以要求您的xlsx生成组件使用另一个zip引擎吗

既然主题发起者报告说他进行了zip重新打包并上传了两个文件以进行比较,我删除了大部分答案


因为你做了重新包装测试

我确认在OpenOffice 4.1.1 Win32和LibreOffice 4.2 Linux上无法打开两个文件中的一个

Libreoffice写入以下错误:

libreoffice4.2 ./Export.xlsx 
:1: parser error : Document is empty

^
有关错误的更多信息,请访问

_

在Windows下,除了可能安装cygwin(我没有)之外,无法获取错误日志


好吧,我想我现在记起来了。我想我两年前也犯过类似的错误。。。但是——如果这个假设成立的话——我设法阅读了zip格式规范并修复了它。许多商业zip LIB知道新手的这一失误,并默默地修正了这一错误。但是System.Zip是按照您告诉它的那样一字不差地工作的,因此它会将您的错误按原样传播到XLSX文件中

这是我的想法,但是StackOverflow是程序员的网站,所以我要求你向我们展示你的所有代码,你的内容存储实现。因此,我们应该能够检查您的代码并查看

我要求您向我们展示您在XMLs生成器和System.Zip packer之间使用的代码,当您在某个缓冲区中获得一些spreashsheet时,您如何将其准确地放入Zip xlsx文件中

我的代码在这里(正是将生成的内容存储到zip文件的实现),如果您关心:


新增主题:

 FZipFile.Add(Data, 'xl\worksheets\sheet1.xml');
明白了这里您违反了ZIP格式规范。回顾我上面的lib源代码和它的名称修复

  • 您应该使用普通斜杠“/”,而不是反斜杠“\”
  • 文件名不应以“/xl/worksheets/sheet1.xml”这样的斜杠开头
  • 不应同时使用两个斜杠,如“xl//worksheets//sheet1.xml”
你违反了第1条,你似乎没有违反第2条和第3条,但要记住,以后不要上当

从磁盘打开文件允许这些怪癖,并在运行中修复它们,但zip解析器通常不允许


另外,请考虑共同开发一个普通的人人库,而不是制作自己的临时库并单独解决所有问题。

我使用XE2 System.Zip创建了ODS和XLSX,OpenOffice.org可以很好地打开它们

您可以要求您的xlsx生成组件使用另一个zip引擎吗

既然主题发起者报告说他进行了zip重新打包并上传了两个文件以进行比较,我删除了大部分答案


因为你做了重新包装测试

我确认在OpenOffice 4.1.1 Win32和LibreOffice 4.2 Linux上无法打开两个文件中的一个

Libreoffice写入以下错误:

libreoffice4.2 ./Export.xlsx 
:1: parser error : Document is empty

^
有关错误的更多信息,请访问

_

在Windows下,除了可能安装cygwin(我没有)之外,无法获取错误日志


好吧,我想我现在记起来了。我想我两年前也犯过类似的错误。。。但是——如果这个假设成立的话——我设法阅读了zip格式规范并修复了它。许多商业zip LIB知道新手的这一失误,并默默地修正了这一错误。但是System.Zip是按照您告诉它的那样一字不差地工作的,因此它会将您的错误按原样传播到XLSX文件中

这是我的想法,但是StackOverflow是程序员的网站,所以我要求你向我们展示你的所有代码,你的内容存储实现。因此,我们应该能够检查您的代码并查看

我要求您向我们展示您在XMLs生成器和System.Zip packer之间使用的代码,当您在某个缓冲区中获得一些spreashsheet时,您如何将其准确地放入Zip xlsx文件中

我的代码在这里(正是将生成的内容存储到zip文件的实现),如果您关心:


新增主题:

 FZipFile.Add(Data, 'xl\worksheets\sheet1.xml');
明白了这里您违反了ZIP格式规范。回顾我上面的lib源代码和它的名称修复

  • 您应该使用普通斜杠“/”,而不是反斜杠“\”
  • 文件名不应以“/xl/worksheets/sheet1.xml”这样的斜杠开头
  • 不应同时使用两个斜杠,如“xl//worksheets//sheet1.xml”
你违反了第1条,你似乎没有违反第2条和第3条,但要记住,以后不要上当

从磁盘打开文件允许这些怪癖,并在运行中修复它们,但zip解析器通常不允许


另外,请考虑共同开发一个普通的人人库,而不是制作自己的临时库并单独解决所有问题。

我使用XE2 System.Zip创建了ODS和XLSX,OpenOffice.org可以很好地打开它们

您可以要求您的xlsx生成组件使用另一个zip引擎吗

既然主题发起者报告说他进行了zip重新打包并上传了两个文件以进行比较,我删除了大部分答案


因为你做了重新包装测试

我确认在OpenOffice 4.1.1 Win32和LibreOffice 4.2 Linux上无法打开两个文件中的一个

Libreoffice写入以下错误:

libreoffice4.2 ./Export.xlsx 
:1: parser error : Document is empty

^
有关错误的更多信息,请访问

_

在Windows下,除了可能安装cygwin(我没有)之外,无法获取错误日志


好吧,我想我是雷姆