如何将.xlsx转换为.txt文件?


6

我想知道是否有可用于转换的Linux工具或脚本 .xlsx 档案到 .txt


2
说实话,这不是一个非常明确的问题。你在文件中有什么?只是数据?或者还有图表,宏等吗?

网上有很多可用的。 xlsx是一种专有(和相对较新的)格式,因此我认为开源工具的有效性将受到限制。尝试 tinyurl.com/2vbb7m5
Noufal Ibrahim

1
就像是 wizard.ae.krakow.pl/~jb/xls2txt ,但对于xlsx

Answers:


8

另一种方法是将其重命名为.zip并将其解压缩为所有。*** x文件只是包含xml的压缩文件夹。在里面你会找到一个带有子文件夹“worksheets”的文件夹“xl”,里面是每个工作表的xml文件。它们的格式非常简单,并且很容易使用任何xml包进行解析。


3
+1有趣。我现在正在查看这些XML文件,至少在这种情况下它比你暗示的更复杂 - sheet1.xml没有任何实际文本,但似乎引用另一个名为sharedStrings.xml的XML文件,这是存储文件“内容”的地方。
handsofaten



3

如果它只是文本/数字数据(我必须假设它,否则文本文件会有点雄心勃勃),那么你可以试试 xlsx2csv 从电子表格生成CSV文件。

我无法保证它的有效性,但值得一试。


2

不是shell脚本,(与2010年10月20日8:44 Andy的帖子中提到的脚本不同),但是python脚本:

同名, xlsx2csv

这会将日期值导出为浮点数:

2012/07/01 => 41091,

“2012/07/01 01:00:00”=> 41091.0416666667

xlsx2csv.py --help 
Usage: xlsx2csv.py [options] infile [outfile]

Options:
  --version             show program's version number and exit


     -h, --help            show this help message and exit
      -s SHEETID, --sheet=SHEETID
                            sheet no to convert (0 for all sheets)
      -d DELIMITER, --delimiter=DELIMITER
                            delimiter - csv columns delimiter, 'tab' or 'x09' for
                            tab (comma is default)
      -p SHEETDELIMITER, --sheetdelimiter=SHEETDELIMITER
                            sheets delimiter used to separate sheets, pass '' if
                            you don't want delimiters (default '--------')
      -f DATEFORMAT, --dateformat=DATEFORMAT
                            override date/time format (ex. %Y/%m/%d)
      -i, --ignoreempty     skip empty lines
      -r, --recursive       convert recursively

1

不是命令行,但OpenOffice可以读取.xlsx文件并保存为csv。它可能已经在你的Linux机器上。


1

我使用下面的命令转换当前目录中的所有xlsx文件(必须安装Libre Office):

for i   in *.xlsx; do  libreoffice --headless --convert-to csv "$i" ; done

在我的LibreOffice版本中(在Mac上)就是这样 scalc 代替 libreoffice
Mario Camou
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.