Odpowiedzi:
in2csv
z csvkit
pakietu zapewnia opcję --names
lub -n
opcję: [ Ź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 csvkit
1.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 pip
pomocą
sudo pip install csvkit
aby uzyskać najnowszą wersję.
sudo apt remove python3-csvkit
i 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/in2csv
na wypadek, gdyby wywołano go z -n
opcją i zwykłą /usr/bin/in2csv
inną funkcją.
sudo apt remove python3-csvkit
, zainstalowałem nowszy i działało. Funkcja owijania jest bardzo przydatna tak!
in2csv
jest prostszą opcją, ale zostawię to na wypadek, gdyby ktoś uznał to za przydatne. Istnieje ładne polecenie potrzebne xlhtml
do 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
xlhtml
Generowany 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ć pagetitle
węzły, dla których użyłemxmlstarlet
.
in2csv
brakuje-n
opcji. Dziwne, próbuję wymyślić, jak uzyskać najnowsze, ale masz problemy z csvkit i usuwam starszein2csv
... westchnienie