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.

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()


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 .


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.