Saltar al contenido

¿Cómo puedo convertir un archivo XLSB a csv usando python?

Solución:

Encontré este mismo problema y el uso de pyxlsb lo hace por mí:

from pyxlsb import open_workbook

with open_workbook('HugeDataFile.xlsb') as wb:
    for sheetname in wb.sheets:
        with wb.get_sheet(sheetname) as sheet:
            for row in sheet.rows():
                values = [r.v for r in row]  # retrieving content
                csv_line=",".join(values)  # or do your thing

Los paquetes de Excel python más populares, openpyxl y xlrd, no tienen soporte para xlsb formato (entradas del rastreador de errores: openpyxl, xlrd).

Así que me temo que no hay una forma nativa de Python = /. Sin embargo, dado que está utilizando Windows, debería ser fácil programar la tarea con herramientas externas.

Sugeriría echar un vistazo a Convertir XLS a XLSB de forma programada. Mencionas Python en el título, pero el asunto de la pregunta no implica que estés fuertemente acoplado a él, por lo que podrías optar por el camino puro de C #.

Si se siente realmente cómodo solo con Python, una de las respuestas allí sugiere una herramienta de línea de comandos con un nombre elegante de Convert-XLSB. Puede escribirlo como una herramienta externa de Python con subprocess.

Sé que esta no es una buena respuesta, pero no creo que haya una forma mejor / más fácil a partir de ahora.

En mi experiencia anterior, estaba manejando la conversión de xlsb usando oficina libre utilidad de línea de comando,

En ruby, simplemente ejecuto el comando del sistema para llamar a libreoffice para convertir el formato xlsb a csv:

`libreoffice --headless --convert-to csv your_csv_file.xlsb --outdir /path/csv`

y para cambiar la codificación, uso la línea de comando para usar iconv, usando ruby:

`iconv -f ISO-8859-1 -t UTF-8 your_csv_file.csv > new_file_csv.csv`
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *