Odpowiedzi:
in2csvz csvkitpakietu zapewnia opcję --nameslub -nopcję: [ Źródło ]
-n, --names Display sheet names from the input Excel file.
W twoim przykładzie polecenie to:
in2csv -n file1.xls
Ta funkcja została dodana w wersji csvkit1.0.2, która nie jest dostępna z oficjalnych źródeł pakietów dla wydań starszych niż Bionic. Jeśli korzystasz z Xenial, musisz albo
zainstaluj za pippomocą
sudo pip install csvkit
aby uzyskać najnowszą wersję.
sudo apt remove python3-csvkiti zainstaluję nowszą, najlepiej z paczkami.ubuntu.com lub z github.com/wireservice/csvkit/tree/1.0.2 . Funkcja została wprowadzona z tym zatwierdzeniem oznaczonym „1.0.2”, więc każda wersja od tej powinna mieć tę opcję.
in2csvże wywołuje /path/to/new/in2csvna wypadek, gdyby wywołano go z -nopcją i zwykłą /usr/bin/in2csvinną funkcją.
sudo apt remove python3-csvkit, zainstalowałem nowszy i działało. Funkcja owijania jest bardzo przydatna tak!
in2csvjest prostszą opcją, ale zostawię to na wypadek, gdyby ktoś uznał to za przydatne. Istnieje ładne polecenie potrzebne xlhtmldo konwersji plików XLS na HTML lub XML. A kiedy już masz XML, różne narzędzia do przetwarzania XML mogą być używane do wykonywania wielu różnych zapytań na jego temat. W tym przypadku:
$ xlhtml -xml ~/foo.xls | xmlstarlet sel -t -m '//pagetitle' -v . -n
Sheet1
Sheet2
xlhtmlGenerowany XML jest taki:
<?xml version="1.0" encoding="iso-8859-1" ?>
<excel_workbook>
<sheets>
<sheet>
<page>0</page>
<pagetitle>Sheet1</pagetitle>
<firstrow>0</firstrow>
<lastrow>11</lastrow>
<firstcol>0</firstcol>
<lastcol>0</lastcol>
Tak więc dla nazw arkuszy możemy zapytać pagetitlewęzły, dla których użyłemxmlstarlet .
in2csvbrakuje-nopcji. Dziwne, próbuję wymyślić, jak uzyskać najnowsze, ale masz problemy z csvkit i usuwam starszein2csv... westchnienie