【问题标题】:writing to word using python [closed]使用python写入单词[关闭]
【发布时间】:2014-01-08 12:26:30
【问题描述】:

我使用下面的代码从文本文件中写入 ms 字,但没有写入行。我也无法从中设置页面宽度和高度。我将 wordapp.PageSetup.width 用于某个值,但它引发了错误。 请建议我在哪里失败..

import win32com.client
read = open('out.txt','r')
curser = read.readlines()

wordapp = win32com.client.Dispatch("Word.Application") 
wordapp.Visible = 0 
x = wordapp.Documents.Add() 
x.PageSetup.Orientation = 1 # Make some Setup to the Document:
x.PageSetup.LeftMargin = 0.4
x.PageSetup.TopMargin = 0.5
x.PageSetup.Width = 8.27 #This threw an error
x.PageSetup.BottomMargin = 0.5
x.PageSetup.RightMargin = 0.4
x.Content.Font.Size = 11
x.Content.Paragraphs.TabStops.Add (100)
x.Content.Text = curser #This threw an error
x.Content.MoveEnd
x.Close() # Close the Word Document (a save-Dialog pops up)
x.Quit() # Close the Word Application

【问题讨论】:

  • “一个”错误?您可能想详细说明是哪一个。
  • 我的意思是为什么我不能使用 use Content.Text = cursorr 以及为什么只有curser[n] 以及如何修改word文档的宽度和高度..?提前致谢
  • 我的意思是你为什么不能告诉我们你遇到的 错误,而不是说你得到“一个错误”。提前致谢。
  • AttributeError: 无法设置属性 '.Width'。是我使用 x.PageSetup.Width= 8.27 时得到的。请帮帮我。

标签: python winapi


【解决方案1】:

您的 Python 接口使用 Microsoft Office 应用程序的标准 API 接口,因此您需要了解的所有信息都可以在 http://msdn.microsoft.com/en-us/library/office/ff835409.aspx 上找到。

非常快速浏览一下,发现您要查找的属性不是PageSetup.Width,应该是PageSetup.PageWidth。我没有检查,但我猜你的“光标”问题是一样的——x.Content.Text 可能只是不作为属性存在。

您所做的称为“Cargo Cult Programming”——也就是说,您输入命令时并不真正知道它们做了什么,也没有查找它们,而是依赖于其他“有效的代码”(我猜: 复制自 The Python Script Collection 等资源,重复部分似乎相关的命令,并在执行过程中弥补任何缺失的属性。

不是推荐的学习方式。

【讨论】:

  • 是的,我承认,我复制了代码,因为我没有任何有用的文档。我将研究适用于我的程序的 Microsoft Office API。即使您的回答,PageWidth 的问题仍未解决。但是,我会尝试自己回答这个问题。非常感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 2011-05-28
  • 1970-01-01
  • 1970-01-01
  • 2016-12-04
  • 2016-04-05
  • 1970-01-01
  • 2013-12-28
  • 2014-08-12
相关资源
最近更新 更多