使用 Python 向 Excel 单元格插入附件

本文将介绍如何使用 Python 的 win32com 库,将指定附件插入 Excel 单元格,实现自动化操作。

代码示例

import os
import pandas as pd
import win32com.client

abs_path = os.getcwd()

df = pd.read_excel(r'D:\STRESSTOOL\GPU_Caps_Viewer\benchmark\3.xlsx', sheet_name='Benchmark Tool', dtype=str, usecols='B', keep_default_na='')

xlApp = win32com.client.Dispatch('Excel.Application')
xlApp.Visible = 0
workbook = xlApp.Workbooks.Open(r'D:\STRESSTOOL\GPU_Caps_Viewer\benchmark\3.xlsx')

worksheet = workbook.Sheets['Benchmark Tool']

Embedded_object = worksheet.OLEObjects()

row = 1
for i in df.values.tolist():
    row += 1
    for fn in os.listdir(r'D:\STRESSTOOL\GPU_Caps_Viewer\benchmark\'):
        dh_fj = []
        if i[0] in fn:
            fj_name = r'D:\STRESSTOOL\GPU_Caps_Viewer\benchmark\' + fn
            print(i[0], fj_name)

            dh_fj.append(Embedded_object.Add(ClassType=None, Filename=fj_name, Link=False, DisplayAsIcon=True, Width=18, Height=50))
            Embedded_object = worksheet.OLEObjects()
            print('数量----', Embedded_object.Count)

            for i2 in dh_fj:
                obj = i2
                obj.Left = worksheet.Cells(row, 8).Left + 10
                obj.Top = worksheet.Cells(row, 8).Top + 10
                worksheet.Rows(row).RowHeight = 53
                worksheet.Columns(8).ColumnWidth = 75

workbook.Close()

代码解析

  1. 导入库:导入必要的库,包括 os 用于操作文件路径,pandas 用于读取 Excel 文件,win32com.client 用于操作 Excel 对象。
  2. 读取 Excel 文件:使用 pd.read_excel 读取指定的 Excel 文件,并指定 sheet_nameusecolskeep_default_na 参数。
  3. 创建 Excel 对象:使用 win32com.client.Dispatch 创建 Excel 应用对象,并关闭可见性。
  4. 获取工作表:获取指定的 Sheet 对象。
  5. 创建插入对象:使用 worksheet.OLEObjects 创建插入对象。
  6. 循环插入附件:遍历 DataFrame 中的数据,根据指定条件找到对应的附件文件,并使用 Embedded_object.Add 将附件插入单元格。
  7. 调整单元格格式:调整单元格的宽度和高度,以及插入对象的位置。
  8. 关闭 Excel 文件:使用 workbook.Close 关闭 Excel 文件。

注意点

  • 以上代码示例仅供参考,实际使用时需要根据具体需求进行调整。
  • 附件路径需要使用绝对路径。
  • 可以根据需要调整附件的显示方式(例如:是否显示为图标)。

总结

通过 Python 的 win32com 库,可以方便地将附件插入 Excel 单元格,实现自动化操作。这可以有效提高工作效率,并避免重复的手动操作。

Python 使用 win32com 向 Excel 单元格插入附件

原文地址: https://www.cveoy.top/t/topic/qqMC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录