Python - 使用win32com.client将Excell单元格范围格式化为表格

时间:2016-02-19 09:25:09

标签: python excel win32com

我试图编写一个函数来选择工作表中的所有非空单元格,将列宽调整为内容,并将它们格式化为表格。

我被困在最后一点,这是我现在的代码:

import win32com.client
from win32com.client import constants


f = r"D:\Project\test_copy.xlsx"

exc = win32com.client.gencache.EnsureDispatch("Excel.Application")
exc.Visible = 1
exc.Workbooks.Open(Filename=f)
exc.ActiveSheet.UsedRange.Select()
exc.Selection.Columns.AutoFit()
exc.ActiveSheet.ListObjects("Table1").TableStyle ="TableStyleLight8"

问题在于最后一行。我不知道该怎么办,因为错误信息非常神秘。谷歌对此没什么帮助。

*snip*
 line 80, in __call__
    ret = self._oleobj_.InvokeTypes(0, LCID, 2, (9, 0), ((12, 1),),Index
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147352565), None)

我真的很感激这里有点帮助...

1 个答案:

答案 0 :(得分:2)

一无所获。

它让我吃了一半坚果,但我明白了。与社区分享。

import win32com.client
from win32com.client import constants


f = r"D:\Project\test_copy.xlsx"

exc = win32com.client.gencache.EnsureDispatch("Excel.Application")
exc.Visible = 1
exc.Workbooks.Open(Filename=f)
exc.ActiveSheet.UsedRange.Select()
exc.Selection.Columns.AutoFit()
exc.ActiveSheet.ListObjects.Add().TableStyle = "TableStyleMedium15"