用于查看 xls 文件的命令行工具

Dav*_*ill 27 command-line

是否有用于查看/打开 excel (.xls) 文件的命令行工具?

所以除非工作表没有自定义名称,否则答案很有效。

当我尝试打开文件时,我得到:

Traceback (most recent call last):
  File "/usr/bin/py_xls2csv", line 17, in <module>
    for sheet_name, values in parse_xls(arg, 'cp1251'): # parse_xls(arg) -- default encoding
  File "/usr/lib/python2.5/site-packages/pyExcelerator/ImportXLS.py", line 334, in parse_xls
    raise Exception, 'No workbook stream in file.'
Exception: No workbook stream in file.
Run Code Online (Sandbox Code Playgroud)

但是,如果我打开文件并将工作表重命名为“测试”或其他名称,则它可以正常工作。我需要调整什么才能处理默认名称?(表 1 等)

我目前尝试打开的文件只有一张工作表,名为 Sheet1。

Oli*_*Oli 22

是的,虽然它有点hacky。让我们从安装两个包开始:

sudo apt-get install python-excelerator w3m
Run Code Online (Sandbox Code Playgroud)

从那里,我们使用捆绑的脚本python-excelerator将文档转换为 HTML 文件。然后我们将其通过管道传输到命令行浏览器 ( w3m) 并显示它。

py_xls2html spreadsheet.xls 2>/dev/null | sed 's/"//g' | w3m -dump -T 'text/html'
Run Code Online (Sandbox Code Playgroud)

如果您不想继续输入它,您可以使用它创建一个 bash 函数或别名。它应该给你这样的输出:

Sheet = Sheet1
?????????????????????????????
?this?is ?a    ?spreadsheet ?
?????????????????????????????
?it  ?is ?very ?nice        ?
?????????????????????????????
?this?has?three?rows        ?
?????????????????????????????
Sheet = Sheet2 Sheet = Sheet3
Run Code Online (Sandbox Code Playgroud)

很漂亮。显然,这不会支持任何类型的宏、编辑或任何交互性。这纯粹是一个观众。您还可以去除包裹事物的引号。在这一点上,我并没有特别为他们烦恼。

如果您不需要它作为表格,您可以简单地使用以下内容:

py_xls2csv spreadsheet.xls 2>&1 | less
Run Code Online (Sandbox Code Playgroud)

您可以更进一步,并以更好的方式显示它:

py_xls2csv spreadsheet.xls 2>&1 | grep '^"' | sed 's/"//g' | column -s, -t | less -#2 -N -S
Run Code Online (Sandbox Code Playgroud)

这为您提供了以下内容:

  1 this   is    a       spreadsheet
  2 it     is    very    nice
  3 this   has   three   rows
Run Code Online (Sandbox Code Playgroud)