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

标签 python ms-word pywin32 autoformatting

使用 python 的 MS 单词表

我正在使用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)

有关为什么需要这些变量的信息可以在此处阅读:

http://msdn.microsoft.com/en-us/library/office/ff845710(v=office.15).aspx

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

?Word.wdWord9TableBehavior

接下来,从链接中,我们看到另一个名为 AutoFitBehavior 的选项。这定义为:

Sets the AutoFit rules for how Word sizes tables. Can be one of the WdAutoFitBehavior constants.

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

?Word.wdAutoFitBehavior.

最后一个点之后,应该会出现可能的选项。这些将是:

  • wdAutoFitContent
  • wdAutoFitFixed
  • wdAutoFitWindow

AutoFitContent 看起来是我们想要的选项,所以让我们用以下内容完成上一行:

?Word.wdAutoFitBehavior.wdAutoFitContent

结果将为“1”。

现在您可能会问,为什么我们必须经历所有这些麻烦才能找到值的数字表示形式。根据我在 Excel 中使用 pywin32 的经验,大多数时候您无法从字符串中获取内置值。但输入数字表示的效果是一样的。

此外,代码可能失败的另一个原因是表对象可能没有“自动调整”功能。

我使用的是Word 2007,Table具有AutoFitBehavior功能。 所以改变:

 table.AutoFit(AutoFitBehaviour.AutoFitToContent)

致:

table.AutoFitBehavior(1) 
//''Which we know the 1 means wd.wdAutoFitBehavior.wdAutoFitContent

希望我做对了,这对您有帮助。

关于python - 我如何使用python(pywin32)更改word中表格的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22389363/

相关文章:

python - 如何模拟点击元素?

python - 使用 sympy 反转函数并评估反转函数给了我一个错误的答案

python - “列表”对象不能解释为整数

java - 将文本从 Microsoft Word 复制到 JTextPane

c# - CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件的类工厂存在问题

python - 使用 tkinter 在 Windows 上使用全局热键

python - 将文本编码为 win32api.SendMessage() 的 WPARAM

python - 收到打印作业 Python

python - python 运算符什么时候是续行?

python - 使用 Python 退出 Word 文档时出现问题