Скопируйте сводную таблицу как изображение с python - PullRequest
0 голосов
/ 03 августа 2020

Как это работает, чтобы выбрать сводную таблицу с помощью Python, а затем скопировать ее в .png?

Я пытаюсь использовать wb.Worksheets ("Test"). PivotTables (1), но он сохраняет выдает ошибку ...

win32c = win32.constants
ws.PivotTables("PivotTable1").CopyPicture(Format=win32c.xlBitmap)
img = ImageGrab.grabclipboard()
image_path = 'C:/Prueba/test.png'
img.save(image_path)
excel.Quit()

Ошибка:

AttributeError: ' 'объект не имеет атрибута' CopyPicture '

1 Ответ

0 голосов
/ 03 августа 2020

Как упоминалось в комментариях, вы можете использовать автоматизацию Excel для копирования сводной таблицы в файл изображения.

Для этого кода я использовал образец файла Excel, который можно найти здесь: https://www.timeatlas.com/wp-content/uploads/pivot_table_example.xlsx

Вот код для копирования сводной таблицы из файла примера:

from win32com.client import Dispatch
import win32com.client as win32
from PIL import ImageGrab

ExcelFile = 'C:/tmp/pivot_table_example.xlsx'
SheetName = "Sheet2"  # sheet with pivot table
ImgFile = 'C:/tmp/test.png'

excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = True

excel.Workbooks.Open(ExcelFile)
excel.Sheets(SheetName).Select()
excel.Sheets(SheetName).PivotTables(1).TableRange1.Select()  # select first pivot table
excel.Sheets(SheetName).PivotTables(1).TableRange1.Copy()

img = ImageGrab.grabclipboard()
img.save(ImgFile)
excel.Quit()
...