使用python将文本文件(对象)作为.txt插入到excel表的单元格中

RAV*_*DDY 5 python

在此处输入图片说明

我想使用python(如上所示)将文本文件嵌入到excel表中,这样当您单击该单元格时,该文件会自动打开。我不想将路径指定为 hyperlink.like "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
Run Code Online (Sandbox Code Playgroud)

我已经使用上面的代码从Embedding text file into excel using Python 来完成我所需要的,但它抛出了一个错误

xl.ActiveSheet.OLEObjects().Add(Filename=fi, Link=False, DisplayAsIcon=True).Select File "", line 6, in Add com_error: (-2147352567, 'Exception发生', (0, u' Microsoft Excel', u'OLEObjects 类的添加方法失败', u'xlmain11.chm', 0, -2146827284), None)

编辑 :

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
Run Code Online (Sandbox Code Playgroud)

我已经根据评论尝试过这个,但它引发了以下错误

回溯(最近一次调用最后一次):

文件“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() File "", line 6, in Add com_error: (-2147352567, 'Exception发生.', (0, u'Microsoft Excel', u'Add method of OLEObjects课程失败', u'xlmain11.chm', 0, -2146827284), None)

小智 0

我认为这篇文章:

使用Python将文本文件嵌入到Excel中

回答你问题的第一部分。

关于路径问题,您可以尝试使用相对路径或环境变量(在Windows上,您可以依赖HOMEPATH)。

问候。