有谁知道excel截取动态数据区域的图,我用了PIL和openpyxl,一直在给我截当前屏幕

你可以使用openpyxl库来读取Excel中的数据,并根据数据的范围生成图表。以下是一个示例代码,可以帮助你实现截取Excel中动态数据区域的图表。

import openpyxl
from openpyxl.drawing.image import Image
from PIL import ImageGrab

# 打开Excel文件
wb = openpyxl.load_workbook('your_file.xlsx')

# 获取当前活动的工作表
ws = wb.active

# 获取数据的范围(动态数据区域)
data_range = ws.calculate_dimension()

# 获取动态数据区域的左上角和右下角坐标
left = data_range.split(':')[0]
right = data_range.split(':')[1]

# 截取屏幕中的动态数据区域
img = ImageGrab.grab(bbox=(left, top, right, bottom))

# 将截取得到的图像保存为临时文件
img_path = 'temp.png'
img.save(img_path)

# 插入图像到Excel工作表中
img_obj = Image(img_path)
img_obj.anchor = 'A1'  # 设置图像插入位置为A1单元格
ws.add_image(img_obj)

# 保存Excel文件
wb.save('your_file_with_chart.xlsx')

你需要根据具体情况修改文件路径和数据范围的获取方式。这个示例代码使用了PIL库来截取屏幕中的数据区域,并借助openpyxl库将截图插入到Excel工作表中。