【发布时间】:2018-01-08 08:13:26
【问题描述】:
我想使用 python 将一个文本文件嵌入到 Excel 工作表中(如上所示),这样当您单击该单元格时,该文件会自动打开。我不想将路径指定为超链接。如“c:\My Documents\xyz.txt”。这样做的原因是我希望代码是可移植的,即其他人也应该能够在他们想要的任何文件夹中的计算机上运行该程序。在这种情况下,由于指定的路径名,代码将无法在其他计算机上运行。
import win32com.client as win32
xl = win32.Dispatch('Excel.Application')
xl.Visible = 1
wb = xl.Workbooks.Open("C:\Users\\automation\\abcdef.xlsx")
column = wb.ActiveSheet.Range("A2:A200")
Embedded_object = wb.ActiveSheet.OLEObjects()
i = 2
for cell in column:
hostname_cell = wb.ActiveSheet.Cells(i,1).Value
fi = 'C:\Users\\212632723\utomation\\geckodriver.txt'
if hostname_cell is None:
print fi
xl.ActiveSheet.OLEObjects().Add(Filename=fi, Link=False, DisplayAsIcon=True).Select
i += 1
我已经使用来自Embedding text file into excel using Python 的上述代码来完成我需要的操作,但它会引发错误
xl.ActiveSheet.OLEObjects().Add(文件名=fi, Link=False, DisplayAsIcon=True)。选择文件“”,第 6 行,在 添加 com_error: (-2147352567, '发生异常。', (0, u'Microsoft Excel', u'OLEObjects 类的添加方法失败', u'xlmain11.chm', 0, -2146827284),无)
编辑:
import win32com.client as win32
xl = win32.Dispatch('Excel.Application')
xl.Visible = 1
wb = xl.Workbooks.Open("C:\Users\\212632723\python_ui_automation\\abcdef.xlsx")
column = wb.ActiveSheet.Range("A2:A200")
Embedded_object = wb.ActiveSheet.OLEObjects()
i = 2
for cell in column:
hostname_cell = wb.ActiveSheet.Cells(i,1).Value
fi = 'C:\Users\\212632723\python_ui_automation\\geckodriver.txt'
if hostname_cell is None:
print fi
#xl.ActiveSheet.OLEObjects().Add(Filename=fi, Link=False, DisplayAsIcon=True).Select
xl.ActiveSheet.OLEObjects().Add(Filename=fi, Link=False, DisplayAsIcon=True, IconFileName="excel.exe", IconIndex=0, IconLabel="IcoLabel").Select()
i += 1
我已经根据 cmets 进行了尝试,但它会引发以下错误
Traceback(最近一次调用最后一次):
文件“C:\Users\212632723\python_ui_automation\hello.py”,第 15 行,在 xl.ActiveSheet.OLEObjects().Add(Filename=fi, Link=False, DisplayAsIcon=True, IconFileName="excel.exe", IconIndex=0, IconLabel="IcoLabel").Select() 文件 "", 行 6、在添加com_error:(-2147352567,'发生异常。',(0, u'Microsoft Excel', u'OLEObjects 类的添加方法失败', u'xlmain11.chm', 0, -2146827284), 无)
【问题讨论】:
标签: python