Pregunta

¿Cómo puedo ir sobre la creación de una hoja de trabajo (dentro de un libro de Excel) con una tabla dinámica utilizando librerías de Python como pyExcelerator / XLRD? Necesito generar un informe diario que tiene una tabla dinámica para resumir los datos de otras hojas. Una opción sería tener una plantilla en blanco que copio y rellenar con los datos. En este caso, hay una manera de refrescar el pivote de código? ¿Alguna otra sugerencia?

¿Fue útil?

Solución

Por favor, aclarar (mediante la edición de su pregunta) si la "hoja" es una abreviatura de "hoja de cálculo" y significa un archivo XLS conjunto, o si es una abreviatura de "hoja de cálculo", un componente de un "libro".

Si por "tabla dinámica" quiere decir el mecanismo de Excel, estás de suerte, ya que pueden ser creados solamente por Excel. Sin embargo si se refiere a una "tabla de referencias cruzadas" que cree su propia utilizando Python y una biblioteca apropiada, puede hacerlo utilizando el trío de XLRD, xlwt y xlutils.

XLRD usted parece conocer.

xlwt es un tenedor de pyExcelerator con errores corregidos y varias mejoras. pyExcelerator no parece ser mantenido.

xlutils es un paquete de módulos de servicios públicos. xlutils.copy puede ser utilizado para hacer un libro de objeto de un objeto xlwt libro XLRD, para que pueda realizar cambios en el xlwt libro y guarda en un archivo.

Aquí está su una ventanilla única para obtener más información sobre los tres paquetes , junto con un tutorial y enlaces a una lista de correo / Google-grupo que se puede utilizar para obtener ayuda.

Otros consejos

Trate de echar un vistazo a esto: Python: Actualizar las tablas dinámicas en la hoja de trabajo

Si usted averiguar howto crear las tablas dinámicas, puede utilizar el código para refrescarlos

No creo que se puede añadir una tabla dinámica mediante programación utilizando xlwt.

Sin embargo, su segundo enfoque (poblando un libro preconfigurado) parece razonable.

Se puede actualizar la tabla dinámica utilizando una macro VBA en el libro de plantilla. Para hacer esto automáticamente, crear un controlador de eventos WorkBook_Open.

El código VBA para actualizar una tabla dinámica es:

Sheet1.PivotTables(1).PivotCache.Refresh
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top