Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pywin32 Excel格式_Python_Excel_Pywin32 - Fatal编程技术网

Python Pywin32 Excel格式

Python Pywin32 Excel格式,python,excel,pywin32,Python,Excel,Pywin32,我想通过pywin32写入Excel工作表。我可以毫无问题地做到。但我无法在工作表中格式化一系列单元格。我想在单元格内将值居中对齐。我还需要用颜色填充单元格。我怎么做 提前感谢。我以前没有使用python专门完成这项工作,但我假设您使用的是excel的COM自动化接口 有一个例子似乎涵盖了C#中的对齐和用颜色填充单元格,因此它应该很容易适应python。假设您有一个名为sheet的工作表对象,而Excel自动化对象名为Excel,我猜它可能看起来有点像这样: //Format A1:D1 as

我想通过pywin32写入Excel工作表。我可以毫无问题地做到。但我无法在工作表中格式化一系列单元格。我想在单元格内将值居中对齐。我还需要用颜色填充单元格。我怎么做


提前感谢。

我以前没有使用python专门完成这项工作,但我假设您使用的是excel的COM自动化接口

有一个例子似乎涵盖了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
如果您无法从python中访问Excel.XlAlign和XlColorIndex常量,那么您可以将它们替换为它们表示的特定整数,尽管我不确定从何处获取它们。可能来自一个或类似的地方。(虽然我提供的链接似乎不允许您展开列表中的每个条目,因此您可能需要查看其他地方)

编辑:刚刚通过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中打开生成的工作表并查看结果以解决问题

您可以找到Office2003自动化API的官方参考
具体来说,您可能会发现最有用的方法。

我以前没有使用python专门完成这项工作,但我假设您使用的是excel的COM自动化接口

有一个例子似乎涵盖了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
如果您无法从python中访问Excel.XlAlign和XlColorIndex常量,那么您可以将它们替换为它们表示的特定整数,尽管我不确定从何处获取它们。可能来自一个或类似的地方。(虽然我提供的链接似乎不允许您展开列表中的每个条目,因此您可能需要查看其他地方)

编辑:刚刚通过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中打开生成的工作表并查看结果以解决问题

您可以找到Office2003自动化API的官方参考
具体来说,您可能会发现最有用的。

这些常数让我非常恼火。在使用COM常量的标题下有关于它们所在位置的信息。您有没有可能详细说明一下?如果我不知道出了什么问题,我真的帮不了你。在您的第一个建议中,python无法识别属性。在第二个建议中,语句“xlSht.Range(“A1”、“D1”).VerticalAlignment=1”没有给出任何错误,但没有将范围居中对齐。您是否尝试将垂直对齐或水平对齐设置为1以外的数字以查看其效果?我找不到关于每个常量的确切值的合适参考,也无法让常量本身在python中工作,但似乎正确的值可能是相当小的数字,您可以通过玩来找到。很抱歉,我没有更好的答案,但我自己没有时间玩太多。谷歌一直是我的主要资源,但API的官方参考资料在这里:(至少是office 2003)。这些常量让我非常恼火。在使用COM常量的标题下有关于它们所在位置的信息。您有没有可能详细说明一下?如果我不知道出了什么问题,我真的帮不了你。在您的第一个建议中,python无法识别属性。在第二个建议中,语句“xlSht.Range(“A1”、“D1”).VerticalAlignment=1”没有给出任何错误,但没有将范围居中对齐。您是否尝试将垂直对齐或水平对齐设置为1以外的数字以查看其效果?我找不到关于每个常量的确切值的合适参考,也无法让常量本身在python中工作,但似乎正确的值可能是相当小的数字,您可以通过玩来找到。很抱歉,我没有更好的答案,但我自己没有时间玩太多。谷歌一直是我的主要资源,但API的官方参考资料如下:(至少适用于office 2003)。