Pywin32 Excel Formatting



我想通过pywin32写一个Excel表。我可以毫无问题地做。但是我不能在工作表中设置单元格的格式。我想在单元格内将值居中对齐。我还需要用颜色填充单元格。我该怎么做呢?

我以前没有特别使用python做过这个,但我假设您正在使用COM自动化接口来excel。

这个页面有一个例子,似乎涵盖了c#中的对齐和填充颜色单元格,所以它应该很容易适应python。假设您有一个名为sheet的工作表对象,并且Excel自动化对象名为Excel,我猜它可能看起来像这样:

//Format A1:D1 as center alignment, 
sheet.Range("A1", "D1").VerticalAlignment = Excel.XlVAlign.xlVAlignCenter
sheet.Range("A1", "D1").HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter
sheet.Range("A1", "D1").Interior.ColorIndex = Excel.XlColorIndex.Red

如果您无法访问Excel。XlAlign和XlColorIndex常量,然后你可以用它们表示的特定整数替换它们,尽管我不完全确定你可以从哪里得到它们。可能从VBA参考网站或类似的。(虽然我提供的链接似乎不允许您展开列表中的每个条目,因此您可能需要查看其他地方)

编辑:刚刚通过python控制台玩了一下excel自动化,它似乎工作得很好:

>>> from win32com.client import Dispatch
>>> xlApp = Dispatch("Excel.Application")
>>> xlWb = xlApp.Workbooks.Add()
>>> xlSht = xlWb.WorkSheets(1)
>>> xlSht.Range("A1", "D1").VerticalAlignment = 1
>>> xlSht.Range("A1", "D1").Interior.ColorIndex = 6
>>> # The background color of A1-D1 should now be yellow
>>> xlSht.Cells(1, 1).VerticalAlignment = 1

如果你找不到任何关于各种校准/颜色常量的好的参考,那么我就像这样在控制台上玩python,然后在excel中打开结果工作表,看看结果来弄清楚。

您可以在这里找到office 2003自动化API的官方参考具体来说,您可能会发现范围文档最有用。

最新更新