【问题标题】:Insert a text file (object) as .txt into a cell of excel sheet using python使用python将文本文件(对象)作为.txt插入到excel表格的单元格中
【发布时间】: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


    【解决方案1】:

    我认为这篇文章:

    Embedding text file into excel using Python

    回答您问题的第一部分。

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

    问候。

    【讨论】:

    • 不,这对我不起作用。抛出以下错误文件“”,第 6 行,添加 com_error: (-2147352567, '发生异常。', (0, u'Microsoft Excel', u'Add method of OLEObjects class failed', u'xlmain11 .chm', 0, -2146827284), 无)
    • 您是否尝试过类似的方法:xl.ActiveSheet.OLEObjects().Add(Filename=fi, Link=False, DisplayAsIcon=True, IconFileName="excel.exe", IconIndex=0, IconLabel= "IcoLabel"). 选择
    • 是的,已经尝试过了,但我仍然得到错误。已更新相关问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-28
    • 1970-01-01
    相关资源
    最近更新 更多