欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用python-docx在word文檔中查找書(shū)簽,并在書(shū)簽處寫(xiě)入數(shù)據(jù)方式

 更新時(shí)間:2024年09月11日 16:17:37   作者:hooyying  
使用python-docx庫(kù),可在Word文檔中查找書(shū)簽并寫(xiě)入數(shù)據(jù)。首先打開(kāi)文檔,通過(guò)bookmarks屬性獲取書(shū)簽對(duì)象,然后使用書(shū)簽名定位書(shū)簽位置,最后將數(shù)據(jù)寫(xiě)入書(shū)簽處。這種方法適合自動(dòng)化填充Word模板等場(chǎng)景

使用python-docx在word文檔中查找書(shū)簽,并在書(shū)簽處寫(xiě)入數(shù)據(jù)

來(lái)看實(shí)例

from docx import Document,oxml
from docx.oxml.shared import qn
from docx.text.paragraph import Paragraph
from docx.oxml import OxmlElement
def get_bookmark_par_element_start(document, bookmark_name):
    """查找標(biāo)簽的起始位置(所在的段落)"""
    doc_element = document.part.element
    bookmarks_list = doc_element.findall('.//' + qn('w:bookmarkStart'))
    for bookmark in bookmarks_list:
        name = bookmark.get(qn('w:name'))
        if name == bookmark_name:
            par = bookmark.getparent()
            if not isinstance(par, oxml.CT_P):
                print('par不是CT_P類(lèi)型,返回2')
                return 2
            else:
                print(type(par))
                #return par, bookmark.get(qn('w:id'))
                return par
    print('沒(méi)找到書(shū)簽,返回1')
    return 1
#查找書(shū)簽的結(jié)束位置(所在的段落)
def get_bookmark_par_element_end(document, bookmark_id):
    doc_element = document.part.element
    bookmarks_list = doc_element.findall('.//' + qn('w:bookmarkEnd'))
    for bookmark in bookmarks_list:
        name = bookmark.get(qn('w:id'))
        if name == bookmark_id:
            par = bookmark.getparent()
            if not isinstance(par,oxml.CT_P):
                return 2
            else:
                return par
    return 1
def insert_paragraph_after(paragraph, text=""):
    """在paragraph后添加新的段落"""
    new_p = OxmlElement("w:p")
    paragraph._p.addnext(new_p)
    new_para = Paragraph(new_p, paragraph._parent)
    print(new_para)
    print(text)
    new_para.add_run(text)
    return new_para
def set_bookmark_values(document, bookmark_name, text_list: list):
    """
    :param document:
    :param bookmark_name:
    :param text_list: 待添加的文本列表
    :return:
    """
    bookmark_par = get_bookmark_par_element_start(document, bookmark_name)
    if bookmark_par == 1 or bookmark_par==2:
        print('未到書(shū)簽或類(lèi)型錯(cuò)誤')
        return
    bookmark_par_parent = bookmark_par.getparent()
    #獲得書(shū)簽索引
    index = bookmark_par_parent.index(bookmark_par)
    for _i, _text in enumerate(text_list):
        base_paragraphs = document.paragraphs[index + _i]
        result_with_space = " ".join(_text)
        insert_paragraph_after(base_paragraphs, result_with_space)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 對(duì)numpy 數(shù)組和矩陣的乘法的進(jìn)一步理解

    對(duì)numpy 數(shù)組和矩陣的乘法的進(jìn)一步理解

    下面小編就為大家分享一篇對(duì)numpy 數(shù)組和矩陣的乘法的進(jìn)一步理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python神經(jīng)網(wǎng)絡(luò)MobileNet模型的復(fù)現(xiàn)詳解

    python神經(jīng)網(wǎng)絡(luò)MobileNet模型的復(fù)現(xiàn)詳解

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)MobileNet模型的復(fù)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python如何在Word中查找并替換文本

    Python如何在Word中查找并替換文本

    這篇文章主要為大家詳細(xì)介紹了Python在Word中實(shí)現(xiàn)查找并替換文本的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • Pytorch寫(xiě)數(shù)字識(shí)別LeNet模型

    Pytorch寫(xiě)數(shù)字識(shí)別LeNet模型

    這篇文章主要介紹了Pytorch寫(xiě)數(shù)字識(shí)別LeNet模型,LeNet-5是一個(gè)較簡(jiǎn)單的卷積神經(jīng)網(wǎng)絡(luò),??LeNet-5?這個(gè)網(wǎng)絡(luò)雖然很小,但是它包含了深度學(xué)習(xí)的基本模塊:卷積層,池化層,全連接層。是其他深度學(xué)習(xí)模型的基礎(chǔ),?這里我們對(duì)LeNet-5進(jìn)行深入分析,需要的朋友可以參考下
    2022-01-01
  • Python全棧之學(xué)習(xí)CSS(2)

    Python全棧之學(xué)習(xí)CSS(2)

    這篇文章主要為大家介紹了Python全棧之CSS,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Python隨機(jī)數(shù)用法實(shí)例詳解【基于random模塊】

    Python隨機(jī)數(shù)用法實(shí)例詳解【基于random模塊】

    這篇文章主要介紹了Python隨機(jī)數(shù)用法,結(jié)合實(shí)例形式分析了基于random模塊的各種隨機(jī)數(shù)操作常用技巧,需要的朋友可以參考下
    2017-04-04
  • Python實(shí)現(xiàn)的批量下載RFC文檔

    Python實(shí)現(xiàn)的批量下載RFC文檔

    這篇文章主要介紹了Python實(shí)現(xiàn)的批量下載RFC文檔,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-03-03
  • Python修改游戲內(nèi)存的方法

    Python修改游戲內(nèi)存的方法

    本文給大家分享一個(gè)通過(guò)Python來(lái)修改游戲內(nèi)存的方法,幫助大家更改游戲中的數(shù)據(jù),步驟很簡(jiǎn)單,而且有視頻講解,感興趣的朋友一起看看吧
    2021-11-11
  • pandas讀取中文xlsx文件出現(xiàn)的問(wèn)題

    pandas讀取中文xlsx文件出現(xiàn)的問(wèn)題

    這篇文章主要介紹了pandas讀取中文xlsx文件出現(xiàn)的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Django單元測(cè)試中Fixtures的使用方法

    Django單元測(cè)試中Fixtures的使用方法

    這篇文章主要介紹了Django單元測(cè)試中Fixtures用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評(píng)論