Respuestas:
in2csv
proporciona la opción --names
u -n
para eso: [ Fuente ]
-n, --names Display sheet names from the input Excel file.
En su ejemplo, el comando sería:
in2csv -n file1.xls
Resulta que esta característica solo se agregó en csvkit
1.0.2, que aún no está disponible en las fuentes oficiales del paquete . Usted necesita
instalarlo a través pip
de
sudo pip install csvkit
para obtener la última versión
sudo apt remove python3-csvkit
e instalaría uno más nuevo, preferiblemente desde packages.ubuntu.com , o bien desde github.com/wireservice/csvkit/tree/1.0.2 . La función se introdujo con este commit etiquetado como "1.0.2", por lo que cualquier versión a partir de ese momento debería tener esta opción.
in2csv
eso llamadas /path/to/new/in2csv
en caso de que se llama con la -n
opción y la costumbre /usr/bin/in2csv
más.
sudo apt remove python3-csvkit
, instalé el más nuevo y funcionó. La función de envoltura es muy útil sí!
in2csv
es la opción más simple, pero la dejaré en caso de que alguien pueda encontrarla útil. Hay un buen comando llamado xlhtml
para convertir archivos XLS a HTML o XML. Y una vez que tenga el XML, se pueden usar varias herramientas de procesamiento de XML para realizar una amplia variedad de consultas. En este caso:
$ xlhtml -xml ~/foo.xls | xmlstarlet sel -t -m '//pagetitle' -v . -n
Sheet1
Sheet2
El XML que xlhtml
genera es así:
<?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>
Entonces, para los nombres de las hojas, podemos consultar los pagetitle
nodos, que uséxmlstarlet
.
in2csv
falta-n
. Extraño, tratando de descubrir cómo obtener lo último, pero teniendo problemas con csvkit y eliminando los viejosin2csv
... suspiro