Como editar o arquivo Excel (xlsx) usando o shell linux

11

Existe uma maneira (ferramenta) de editar arquivos XLSX usando o shell Linux? O que eu preciso é de uma maneira de remover as três últimas linhas não vazias da primeira planilha.

Eu sei que o XLSX é apenas um arquivo zip, compactado com diferentes arquivos XML, que eu poderia editar individualmente. No entanto, eu gostaria de evitar a análise e a alteração dos arquivos XML, se possível.

Bojan Hrnkas
fonte

Respostas:

14

Minha ideia é um script python como este:

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

para verificar "não-vazio", você pode usar df.notna()

DDS
fonte
Parece promissor - tentarei. Só para ter certeza - df.ix [: - 3] - excluirá as últimas três linhas não vazias? Como uma planilha do Excel possui muitas linhas vazias, se você observar o arquivo xml no xlsx.
Bojan Hrnkas
2
ele exclui as últimas 3 linhas. linhas vazias após a última linha não vazia são ignoradas. Por conveniência aqui: pandas.pydata.org/pandas-docs/version/0.22/generated/... é uma referência de pandas trama de dados
DDS
-3

O Libreoffice (e provavelmente também o OpenOffice) pode ler arquivos .xlsx criados pelo Excel. Se você não tiver muitos arquivos para processar dessa maneira, fazê-lo manualmente no Libreoffice é o caminho mais simples. Se você possui muitos arquivos e realmente precisa de uma solução automatizada, o Libreoffice é programável. Veja os documentos da API ou comece com uma introdução mais tutorial .

usuario
fonte
2
Isso não funciona para mim, porque eu quero automatizar algo em um servidor sem cabeça.
Bojan Hrnkas
2
@tubo. É possível executar o LibreOffice no modo sem cabeça, não é?
TRiG
3
@TRiG Claro que sim, e uma resposta detalhando como fazer isso seria uma ótima resposta. Essa não é a resposta.
pipe
1
O @pipe chamar o LibreOffice de "ferramenta única de interface gráfica" é bastante extremo. É basicamente o oposto do que realmente é.
churrasco
1
Abrir o LibreOffice no modo Sem Cabeça é tão simples quanto usar a --headlessopção.
Johnny