如何使用Linux Shell编辑Excel文件(xlsx)


11

有没有一种方法(工具)可以使用Linux Shell编辑XLSX文件?我需要的是从第一个工作表中删除最后三行而不是空行的方法。

我知道XLSX只是一个zip文件,里面装有不同的XML文件,我可以对其进行单独编辑。但是,如果可能的话,我想避免自己分析和更改XML文件。

Answers:


14

我的想法是这样的python脚本:

import pandas as pd
filename=argv[1]
df = pd.read_excel(filename,sheet_name="Sheet1").ix[:-3] ## read the xlsx without last 3 rows to a dataframe
df.write_excel("output_sheet.xlsx") #write dataframe to xlsx file

检查“非空”,您可以使用 df.notna()


听起来很有希望-可以尝试一下。只需确定-df.ix [:-3]-会删除最后三行而不是空行吗?因为excel工作表中有很多空行,所以如果您查看xlsx中的xml文件。
Bojan Hrnkas '18年

2
它删除最后3行。最后一个非空行之后的空行将被忽略。为了方便起见:pandas.pydata.org/pandas-docs/version/0.22/generated/…是pandas数据帧的参考
DDS

-3

Libreoffice(可能还有OpenOffice)可以读取Excel创建的.xlsx文件。如果您没有大量文件要用这种方式处理,那么在Libreoffice中手动进行处理是最简单的方法。如果您有很多文件,并且确实需要自动化的解决方案,那么Libreoffice可以编写脚本。请参阅API文档或从更多的教程介绍开始


2
这对我不起作用,因为我想在无头服务器上自动执行某些操作。
Bojan Hrnkas

2
@管。可以在无头模式下运行LibreOffice,不是吗?
TRiG

3
@TRiG是的,详细说明如何做的答案将是一个很好的答案。这不是那个答案。
管道

1
@pipe将LibreOffice称为“一次性GUI工具”非常极端。基本上与实际情况相反。
烧烤

1
以无头模式打开LibreOffice就像使用该--headless选项一样简单。
约翰尼
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.