如何解压缩 xlsx 文件?

如何解压缩 xlsx 文件?

我在网上找到了一个可用于解压缩docx文件的命令,但我无法调整它来解压缩xlsx文件。命令是

unzip -p some.docx word/document.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g'

我无法理解第二个参数word/document.xml及其使用方式。

当我尝试转换 xlsx 文件时,我尝试了:

unzip -p testexcel.xlsx excel/spreadsheet.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g'

但我不知道在第二个参数中放入什么来代替excel/spreadsheet.xml

答案1

该参数是您要返回的word/document.xmlzip 存档中文件的路径。unzip这是 docx 等文件类型标准结构的一部分。

对于 Excel xlsx 文件,您可能需要xl/worksheets/sheet1.xml.如果还有其他工作表,则它们是sheet2.xml等。这与您为工作表指定的名称无关,这些工作表与一般电子表格信息一起存储在xl/workbook.xml中。

如果您不确定 zip 文件的结构,可以使用该-l选项列出它包含的文件。

unzip -l some.docx

省略该选项只会将文件提取到当前目录。-p您正在使用的命令中使用的 会将输出通过管道传输到 stdout,以便 sed 可以处理它。

答案2

您发布了这个命令:

unzip -p some.docx word/document.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g'

首先,澄清它的作用:

  • word/document.xml它提取一个从 .docx 文件中调用的文件
  • 它通过管道传输到sed命令,该命令通过删除所有格式信息以某种方式“美化”输出

因此,要了解如何使用 来做到这一点.xlsx,请尝试unzip foo.xlsx。您现在可以看到您感兴趣的文件可能是xl/worksheets/sheet1.xml.

.xlsx但如果你想提取我强烈推荐的内容不是使用这种方式。

有几种工具可以.xlsxCSV,它基本上包含以逗号分隔的表格内容。

这个问题关于如何将表单转换.xlsx为 CSV 有多个答案。

相关内容