Réponses:
in2csvfournit l' option --namesou -npour 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 csvkit1.0.2, qui n'est pas encore disponible dans les sources officielles du package . Vous devez soit
installez-le via pipavec
sudo pip install csvkit
pour obtenir la dernière version.
sudo apt remove python3-csvkitet 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.
in2csvthat appelle /path/to/new/in2csvau cas où il est appelé avec l' -noption et le /usr/bin/in2csvreste habituel .
sudo apt remove python3-csvkit, installé le plus récent et cela a fonctionné. La fonction wrapper est très utile oui!
in2csvest 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 xlhtmlpour 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 xlhtmlgé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 pagetitlenœuds, pour lesquels j'ai utiliséxmlstarlet .
in2csvmanquante-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