Відповіді:
in2csv
з csvkit
пакета надається --names
або -n
варіант для цього: [ Джерело ]
-n, --names Display sheet names from the input Excel file.
У вашому прикладі командою було б:
in2csv -n file1.xls
Ця функція була додана в csvkit
1.0.2, який недоступний з офіційних джерел пакета для випусків, старших за Bionic. Якщо ви працюєте з Xenial, вам потрібно зробити будь-який
встановити через за pip
допомогою
sudo pip install csvkit
щоб отримати останню версію.
sudo apt remove python3-csvkit
та встановіть новіший, бажано з пакунків.ubuntu.com , або ще з github.com/wireservice/csvkit/tree/1.0.2 . Ця функція була введена з цим комітом з позначкою "1.0.2", тому будь-яка версія з цієї версії повинна мати цю опцію.
in2csv
що дзвінки /path/to/new/in2csv
у випадку, якщо він викликається з -n
опцією та звичайним /usr/bin/in2csv
іншим.
sudo apt remove python3-csvkit
, встановлював новіший і він працював. Функція обгортки дуже корисна так!
in2csv
є більш простим варіантом, але я залишу це на випадок, якщо хтось вважатиме це корисним. Існує приємна команда xlhtml
для перетворення файлів XLS в HTML або XML. І коли у вас є XML, для виконання найрізноманітніших запитів можна використовувати різні інструменти для обробки XML. В цьому випадку:
$ xlhtml -xml ~/foo.xls | xmlstarlet sel -t -m '//pagetitle' -v . -n
Sheet1
Sheet2
Створюється XML xlhtml
такий:
<?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>
Отже, для назв аркушів ми можемо запитувати pagetitle
вузли, для яких я використавxmlstarlet
.
in2csv
відсутності-n
варіанту. Дивно, намагаючись розібратися, як отримати найновіші, але у вас проблеми з csvkit та видаленням старихin2csv
... зітхання