使用 Python 更新 MS Word(或 Open Office)书签

Posted

技术标签:

【中文标题】使用 Python 更新 MS Word(或 Open Office)书签【英文标题】:Updating MS Word (or Open Office) bookmarks with Python 【发布时间】:2009-11-04 16:24:56 【问题描述】:

我想从 python 脚本中填充 MSWord 书签。 我在 win32com(MSWord) 或 PyUno(Op​​enOffice) 中找不到这样的功能。

有人知道如何在 Python 中使用书签吗?

【问题讨论】:

【参考方案1】:

您在 win32com 中找不到这些函数,而是在您正在使用的 COM 对象的文档中找到它们。在这种情况下,这将是 Word.Application。

你可以看到some sample Python code that uses this COM object to create bookmarks。

最近的Word Object Model Reference is found here at MSDN

【讨论】:

【参考方案2】:

看看这个例子来解决你的问题:

def addText(self, bookmark):
    self.wordApp.ActiveDocument.Bookmarks(bookmark).Select()
    self.wordApp.Selection.TypeText(self.some_text)

# from pandas data frame into word table 
def addTable(self, bookmark, df):
    self.wordApp.ActiveDocument.Bookmarks(bookmark).Select()
     table = location.Tables.Add(location, len(df) + 1, len(df.columns), 1, 1)
    table.AutoFormat(40)
    for i, item in enumerate(df):
        table.Cell(1, i + 1).Range.InsertAfter(item)
        table.Cell(1, i + 1).Range.ParagraphFormat.Alignment = 1
    sel.SelectRow()
    sel.BoldRun()
    table.Rows(1).HeadingFormat = True
    for c in range(2, len(df) + 2):
        for r in range(1, len(df.columns) + 1):
            table.Cell(c, r).Range.ParagraphFormat.Alignment = 1
            if pd.isnull(df.ix[c - 2][r - 1]):
                continue
            table.Cell(c, r).Range.InsertAfter(df.ix[c - 2, r - 1])

【讨论】:

以上是关于使用 Python 更新 MS Word(或 Open Office)书签的主要内容,如果未能解决你的问题,请参考以下文章

使用 MS Access 和 VBA 更新 Ms Word 文档中的(字段代码:数据库)字段

MS Office 更新到版本 13628.20274 后 Word 加载项的问题

用 Python 在 MS Access 数据库中插入或更新行

如何使用来自http url的原始数据在python中下载ms word docx文件

在 AWS Lambda 上使用 Python 将 MS Word(.doc 和 .docx)文件转换为 HTML

从 ms-access 获取数据到 ms-word