Відповіді:
in2csvз csvkitпакета надається --namesабо -nваріант для цього: [ Джерело ]
-n, --names Display sheet names from the input Excel file.
У вашому прикладі командою було б:
in2csv -n file1.xls
Ця функція була додана в csvkit1.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... зітхання