gpt4 book ai didi

python - win32com.client : AttributeError: wdHeaderFooterPrimary and AttributeError: wdAlignParagraphCenter

转载 作者:太空宇宙 更新时间:2023-11-03 14:23:07 36 4
gpt4 key购买 nike

我们准备了以下python脚本来显示word表格中的图片。

import matplotlib.pyplot as plt
import pylab
import win32com.client as win32
import os

# Skip picture making parts

#Generate word file
#Create and formating
wordapp = win32.Dispatch("Word.Application") #create a word application object

wordapp.Visible = 1 # hide the word application

doc=wordapp.Documents.Add()

# create a new application

doc.PageSetup.RightMargin = 20

doc.PageSetup.LeftMargin = 20

doc.PageSetup.Orientation = 1

# a4 paper size: 595x842

doc.PageSetup.PageWidth = 595
doc.PageSetup.PageHeight = 842

header_range= doc.Sections(1).Headers(win32.constants.wdHeaderFooterPrimary).Range

header_range.ParagraphFormat.Alignment = win32.constants.wdAlignParagraphCenter

header_range.Font.Bold = True

header_range.Font.Size = 12

header_range.Text = ""
#Create and formating

#insert table
total_column = 3
total_row = len(compound_name)+1
rng = doc.Range(0,0)
rng.ParagraphFormat.Alignment = win32.constants.wdAlignParagraphCenter
table = doc.Tables.Add(rng,total_row, total_column)
table.Borders.Enable = True
if total_column > 1:
table.Columns.DistributeWidth()
#table title
table.Cell(1,1).Range.InsertAfter("title1")
table.Cell(1,2).Range.InsertAfter("title2")
table.Cell(1,3).Range.InsertAfter("title3")
#collect image
frame_max_width= 167 # the maximum width of a picture
frame_max_height= 125 # the maximum height of a picture
#
for index, filename in enumerate(filenames): # loop through all the files and folders for adding pictures
if os.path.isfile(os.path.join(os.path.abspath("."), filename)): # check whether the current object is a file or not
if filename[len(filename)-3: len(filename)].upper() == 'PNG': # check whether the current object is a JPG file


cell_column= index % total_column + 1
cell_row = index / total_column + 2


cell_range= table.Cell(cell_row, cell_column).Range
cell_range.ParagraphFormat.LineSpacingRule = win32.constants.wdLineSpaceSingle
cell_range.ParagraphFormat.SpaceBefore = 0
cell_range.ParagraphFormat.SpaceAfter = 3

#this is where we are going to insert the images
current_pic = cell_range.InlineShapes.AddPicture(os.path.join(os.path.abspath("."), filename))


doc.SaveAs(os.path.join(os.path.abspath("."),"final.doc"))
doc.Close()

但是运行的时候,会因为这一行出现下面的错误

 header_range= doc.Sections(1).Headers(win32.constants.wdHeaderFooterPrimary).Range

这是错误信息:

Traceback (most recent call last):
File "Drawing.py", line 99, in <module>
header_range= doc.Sections(1).Headers(win32.constants.wdHeaderFooterPrimary).Range
File "C:\Python27\Lib\site-packages\win32com\client\__init__.py", line 170, in __getattr__
raise AttributeError(a)
AttributeError: wdHeaderFooterPrimary

在我看来“wdHeaderFooterPrimary”有问题。所以我只是将以下行静音并再次运行。

#header_range= doc.Sections(1).Headers(win32.constants.wdHeaderFooterPrimary).Range

#header_range.ParagraphFormat.Alignment = win32.constants.wdAlignParagraphCenter

#header_range.Font.Bold = True

#header_range.Font.Size = 12

#header_range.Text = ""

将显示另一条错误消息:

Traceback (most recent call last):
File "C:Drawing.py", line 114, in <module>
rng.ParagraphFormat.Alignment = win32.constants.wdAlignParagraphCenter
File "C:\Python27\Lib\site-packages\win32com\client\__init__.py", line 170, in __getattr__
raise AttributeError(a)
AttributeError: wdAlignParagraphCenter

我在 64 位 Windows 7 中运行 python 2.7.6。安装了 matplotlib.pyplot 和 pylab。 win32com.client 是 2.7.6 32 位和 build 219。Office 是 64 位,但下载站点评论说 win32 32 位应该在 office 64 位/windows 7 64 位(http://sourceforge.net/projects/pywin32/?source=navbar)中正常工作。我可以知道是否有大师可能有任何评论/解决方案吗?谢谢!

最佳答案

仅当静态调度可用时常量才可用。这需要使用 EnsureDispatch(而不是 Dispatch)或通过 makepy.py 或 genclient 生成类型库(EnsureDispatch 为您完成)。所以我会尝试使用 EnsureDispatch。注意:它在 win32com.client.gencache 中:

xl = win32com.client.gencache.EnsureDispatch ("Word.Application")

关于python - win32com.client : AttributeError: wdHeaderFooterPrimary and AttributeError: wdAlignParagraphCenter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24969444/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com