Réponses:
in2csv
fournit l' option --names
ou -n
pour cela: [ Source ]
-n, --names Display sheet names from the input Excel file.
Dans votre exemple, la commande serait:
in2csv -n file1.xls
Il s'avère que cette fonctionnalité n'a été ajoutée que dans la version csvkit
1.0.2, qui n'est pas encore disponible dans les sources officielles du package . Vous devez soit
installez-le via pip
avec
sudo pip install csvkit
pour obtenir la dernière version.
sudo apt remove python3-csvkit
et j'installerais un plus récent, de préférence à partir de packages.ubuntu.com , ou bien à partir de github.com/wireservice/csvkit/tree/1.0.2 . La fonctionnalité a été introduite avec cette validation marquée «1.0.2», donc toute version à partir de celle-ci devrait avoir cette option.
in2csv
that appelle /path/to/new/in2csv
au cas où il est appelé avec l' -n
option et le /usr/bin/in2csv
reste habituel .
sudo apt remove python3-csvkit
, installé le plus récent et cela a fonctionné. La fonction wrapper est très utile oui!
in2csv
est l'option la plus simple, mais je laisserai cela au cas où quelqu'un pourrait le trouver utile. Il y a une belle commande appelée xlhtml
pour convertir des fichiers XLS en HTML ou XML. Et une fois que vous avez le XML, divers outils de traitement XML peuvent être utilisés pour effectuer une grande variété de requêtes sur celui-ci. Dans ce cas:
$ xlhtml -xml ~/foo.xls | xmlstarlet sel -t -m '//pagetitle' -v . -n
Sheet1
Sheet2
Le XML qui xlhtml
génère est comme ceci:
<?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>
Ainsi, pour les noms de feuille, nous pouvons interroger les pagetitle
nœuds, pour lesquels j'ai utiliséxmlstarlet
.
in2csv
manquante-n
. Bizarre, essayant de comprendre comment obtenir la dernière version mais ayant des problèmes avec csvkit et en supprimant les plus anciensin2csv
... soupir