You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将xlsx表格转为图片?曾尝试aspose-cells未成功

Python 将Excel工作表转为图片的可行方案

方案一:使用xlwings(推荐,依赖Excel客户端)

xlwings可直接调用本地Excel程序打开文件并截图,还原度接近原生Excel显示,适合复杂格式的表格。

  1. 安装依赖:
pip install xlwings pillow
  1. 代码示例:
import xlwings as xw
from PIL import ImageGrab

# 后台启动Excel程序
app = xw.App(visible=False, add_book=False)
try:
    wb = app.books.open("你的文件路径.xlsx")
    sheet = wb.sheets[0]  # 选择第一个工作表,可根据名称修改为sheets["Sheet1"]
    used_range = sheet.used_range
    used_range.copy_picture()
    # 从剪贴板提取图片并保存
    img = ImageGrab.grabclipboard()
    img.save("工作表截图.png")
finally:
    wb.close()
    app.quit()

注意:需本地安装Excel客户端,Windows、Mac均支持。

方案二:openpyxl + Pillow(无Excel依赖,适合简单表格)

无需Excel客户端,通过读取表格内容手动绘制图片,但复杂格式(合并单元格、条件格式)处理繁琐。

  1. 安装依赖:
pip install openpyxl pillow
  1. 基础代码示例:
from openpyxl import load_workbook
from PIL import Image, ImageDraw, ImageFont

wb = load_workbook("你的文件路径.xlsx")
sheet = wb.active

# 自定义单元格尺寸与字体
cell_width = 100
cell_height = 30
# 替换为本地存在的字体路径,例如Windows下的"simhei.ttf"
font = ImageFont.truetype("arial.ttf", 12)

# 计算图片总尺寸
img_width = cell_width * sheet.max_column
img_height = cell_height * sheet.max_row
img = Image.new("RGB", (img_width, img_height), "white")
draw = ImageDraw.Draw(img)

# 遍历绘制单元格
for row in range(1, sheet.max_row + 1):
    for col in range(1, sheet.max_column + 1):
        cell = sheet.cell(row=row, column=col)
        x = (col - 1) * cell_width
        y = (row - 1) * cell_height
        # 绘制边框
        draw.rectangle([x, y, x + cell_width, y + cell_height], outline="black")
        # 绘制文本(居中对齐)
        text = str(cell.value) if cell.value else ""
        text_bbox = draw.textbbox((0,0), text, font=font)
        text_x = x + (cell_width - (text_bbox[2]-text_bbox[0])) // 2
        text_y = y + (cell_height - (text_bbox[3]-text_bbox[1])) // 2
        draw.text((text_x, text_y), text, fill="black", font=font)

img.save("简单表格转换.png")

方案三:win32com.client(Windows专属,依赖Excel)

通过Windows COM接口调用Excel实现截图,仅支持Windows系统。

  1. 安装依赖:
pip install pywin32
  1. 代码示例:
import win32com.client as win32
from PIL import ImageGrab

excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = False
try:
    wb = excel.Workbooks.Open("你的文件路径.xlsx")
    sheet = wb.Worksheets(1)  # 选择第一个工作表
    sheet.UsedRange.CopyPicture(Format=win32.constants.xlBitmap)
    img = ImageGrab.grabclipboard()
    img.save("工作表截图.png")
finally:
    wb.Close(SaveChanges=False)
    excel.Quit()

aspose-cells失败的常见原因

  • 未正确配置授权文件(无授权会有水印或功能限制)
  • Python版本与aspose-cells版本不兼容
  • 文件路径或工作表名称错误
    若要继续尝试,可检查授权文件位置、升级至对应版本的库,确保代码中路径和工作表名正确。

内容的提问来源于stack exchange,提问作者Md. Shafayat Jamil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 11:46:02