Jak edytować plik Excel (xlsx) za pomocą powłoki Linux


11

Czy istnieje sposób (narzędzie) do edycji plików XLSX za pomocą powłoki Linux? Potrzebuję sposobu na usunięcie trzech ostatnich niepustych wierszy z pierwszego arkusza.

Wiem, że XLSX to tylko plik zip, wypełniony różnymi plikami XML, które mogłem indywidualnie edytować. Chciałbym jednak unikać analizowania i zmieniania plików XML, jeśli to możliwe.

Odpowiedzi:


14

Mój pomysł to taki skrypt Pythona:

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

aby zaznaczyć „brak pustki”, którego możesz użyć df.notna()


Brzmi obiecująco - spróbuje. Dla pewności - df.ix [: - 3] - usunie ostatnie trzy niepuste wiersze? Ponieważ arkusz programu Excel ma wiele pustych wierszy, jeśli spojrzysz na plik xml w pliku xlsx.
Bojan Hrnkas,

2
usuwa 3 ostatnie wiersze. puste wiersze po ostatnim niepustym wierszu są ignorowane. Dla wygody tutaj: pandas.pydata.org/pandas-docs/version/0.22/generated/… jest odniesieniem do ramki danych pand
DDS

-3

Libreoffice (i prawdopodobnie także OpenOffice) może odczytywać pliki .xlsx utworzone przez program Excel. Jeśli nie masz dużo plików do przetworzenia w ten sposób, najprostszym sposobem jest zrobienie tego ręcznie w Libreoffice. Jeśli masz dużo plików i naprawdę potrzebujesz zautomatyzowanego rozwiązania, Libreoffice jest skryptowalny. Zobacz dokumentację interfejsu API lub zacznij od wprowadzenia do samouczka .


2
To nie działa dla mnie, ponieważ chcę zautomatyzować coś na bezgłowym serwerze.
Bojan Hrnkas,

2
@rura. Możliwe jest uruchomienie LibreOffice w trybie bezgłowym, prawda?
TRiG,

3
@TRiG Jasne, że tak, a odpowiedź opisująca, jak to zrobić, byłaby świetną odpowiedzią. To nie jest ta odpowiedź.
rura

1
@pipe nazywa LibreOffice „jednorazowym narzędziem GUI”. Zasadniczo jest to przeciwieństwo tego, czym naprawdę jest.
grill

1
Otwieranie LibreOffice w trybie bezgłowym jest tak proste, jak użycie --headlessopcji.
Johnny
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.