Respuestas:
in2csvproporciona la opción --namesu -npara 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 csvkit1.0.2, que aún no está disponible en las fuentes oficiales del paquete . Usted necesita
instalarlo a través pipde
sudo pip install csvkit
para obtener la última versión
sudo apt remove python3-csvkite 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.
in2csveso llamadas /path/to/new/in2csven caso de que se llama con la -nopción y la costumbre /usr/bin/in2csvmás.
sudo apt remove python3-csvkit, instalé el más nuevo y funcionó. La función de envoltura es muy útil sí!
in2csves la opción más simple, pero la dejaré en caso de que alguien pueda encontrarla útil. Hay un buen comando llamado xlhtmlpara 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 xlhtmlgenera 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 pagetitlenodos, que uséxmlstarlet .
in2csvfalta-n. Extraño, tratando de descubrir cómo obtener lo último, pero teniendo problemas con csvkit y eliminando los viejosin2csv... suspiro