如何使用python(pywin32)更改word中表格的大小 用python编写ms-word表

如何使用python(pywin32)更改word中表格的大小 用python编写ms-word表,python,ms-word,pywin32,autoformatting,Python,Ms Word,Pywin32,Autoformatting,我在word表上使用python,我正在生成表,但它们都是 自动安装窗口 是否可以将其更改为自动调整内容 我试过这样的方法: table = location.Tables.Add(location,len(df)+1,len(df.columns) table.AutoFit(AutoFitBehavior.AutoFitToContents) 但它会不断引发错误如果要更改表创建以使用以下内容: //''#Add two ones after your columns table = loc

我在word表上使用python,我正在生成表,但它们都是

自动安装窗口

是否可以将其更改为自动调整内容

我试过这样的方法:

table = location.Tables.Add(location,len(df)+1,len(df.columns)
table.AutoFit(AutoFitBehavior.AutoFitToContents)

但它会不断引发错误

如果要更改表创建以使用以下内容:

//''#Add two ones after your columns
table = location.Tables.Add(location,len(df)+1,len(df.columns),1,1)
有关为什么需要这些变量的信息可以在此处阅读:

但基本上,默认行为是禁用单元格自动调整并使用表格自动调整窗口。第一个“1”启用单元格自动拟合。从我上面发布的链接中,DefaultTableBehavior可以是
wdWord8TableBehavior
(禁用自动调整--默认设置)或
wdWord9TableBehavior
(启用自动调整)。数字来自打开Word的VBA编辑器并在即时窗口中键入:

?Word.wdWord9TableBehavior
接下来,从链接中,我们看到另一个名为
AutoFitBehavior
的选项。其定义如下:

设置单词大小表的自动调整规则。可以是
WdAutoFitBehavior
常量之一

现在我们有另一个术语要查。在VBA编辑器的即时窗口中,再次键入:

?Word.wdAutoFitBehavior.
在最后一个点之后,可能的选项应该出现。这些措施包括:

  • wdAutoFitContent
  • 自动安装
  • WDAutofit窗口
AutoFitContent
看起来是我们想要的选项,所以让我们用以下内容结束前一行:

?Word.wdAutoFitBehavior.wdAutoFitContent
结果将是“1”

现在你可能会问,为什么我们要经历所有这些困难,才能找到数值的表示。根据我的经验,在Excel中使用pywin32时,大多数情况下无法从字符串中获取内置值。但加入数字表示法也同样有效

另外,代码失败的另一个原因是表对象可能没有函数“Autofit”

我使用的是Word 2007,Table具有函数,
AutoFitBehavior
。 因此,改变:

 table.AutoFit(AutoFitBehaviour.AutoFitToContent)
致:


希望我没有弄错,这对您有帮助。

您能发布您收到的错误吗?我还没有测试过,但请尝试这样做:“table=location.Tables.Add(location,len(df)+1,len(df.columns),1)”。1指定单元格的自动调整内容。请参见此处:“”。其中一个是在word中打开VBA编辑器并在即时窗口中键入:“word.wdWord9TableBehavior”--如果键入“?word.wdWord8TableBehavior”,您将得到一个0。默认情况下,AutoFit内容是禁用的。我刚刚在VBA中对其进行了测试,您需要的命令是“table=location.Tables.Add(location,len(df)+1,len(df.columns),1,1)”--第二个命令使用AutoFit内容覆盖AutofitWindow行为如果您不知道如何打开VBA编辑器,默认的键击是ALT+F11btw。。你知道如何把单词表放在页面中央吗?使用win32com..你们在用什么库?我正试图用pythondocx实现这一点
table.AutoFitBehavior(1) 
//''Which we know the 1 means wd.wdAutoFitBehavior.wdAutoFitContent