最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用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類型,返回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ū)簽或類型錯(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)文章

  • Python正則表達(dá)式中flags參數(shù)的實(shí)例詳解

    Python正則表達(dá)式中flags參數(shù)的實(shí)例詳解

    正則表達(dá)式是一個(gè)很強(qiáng)大的字符串處理工具,幾乎任何關(guān)于字符串的操作都可以使用正則表達(dá)式來(lái)完成,下面這篇文章主要給大家介紹了關(guān)于Python正則表達(dá)式中flags參數(shù)的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Python input函數(shù)使用實(shí)例解析

    Python input函數(shù)使用實(shí)例解析

    這篇文章主要介紹了Python input函數(shù)使用實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • python中的hashlib和base64加密模塊使用實(shí)例

    python中的hashlib和base64加密模塊使用實(shí)例

    這篇文章主要介紹了python中的hashlib和base64加密模塊使用實(shí)例,hashlib模塊支持的加密算法有md5 sha1 sha224 sha256 sha384 sha512,需要的朋友可以參考下
    2014-09-09
  • Python實(shí)現(xiàn)自動(dòng)生成請(qǐng)假條

    Python實(shí)現(xiàn)自動(dòng)生成請(qǐng)假條

    這篇文章主要為大家詳細(xì)介紹了如何實(shí)現(xiàn)用Python來(lái)批量生成請(qǐng)假條,這回既學(xué)了東西又做了事情,兩不誤!感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-12-12
  • Python的subprocess模塊總結(jié)

    Python的subprocess模塊總結(jié)

    這篇文章主要介紹了Python的subprocess模塊總結(jié),本文詳細(xì)講解了subprocess模塊參數(shù)及Popen方法,然后給出了多個(gè)使用實(shí)例,需要的朋友可以參考下
    2014-11-11
  • 關(guān)于python3中setup.py小概念解析

    關(guān)于python3中setup.py小概念解析

    這篇文章主要介紹了關(guān)于python3中setup.py小概念解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python?dateutil庫(kù)簡(jiǎn)化日期時(shí)間處理利器使用場(chǎng)景實(shí)踐

    Python?dateutil庫(kù)簡(jiǎn)化日期時(shí)間處理利器使用場(chǎng)景實(shí)踐

    在Python中,處理日期和時(shí)間是常見(jiàn)的任務(wù)之一,dateutil庫(kù)是Python標(biāo)準(zhǔn)庫(kù)中datetime模塊的擴(kuò)展,提供了許多方便的工具和函數(shù),簡(jiǎn)化了日期和時(shí)間的操作
    2023-12-12
  • python 同時(shí)運(yùn)行多個(gè)程序的實(shí)例

    python 同時(shí)運(yùn)行多個(gè)程序的實(shí)例

    今天小編就為大家分享一篇python 同時(shí)運(yùn)行多個(gè)程序的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Python如何通過(guò)手肘法實(shí)現(xiàn)k_means聚類詳解

    Python如何通過(guò)手肘法實(shí)現(xiàn)k_means聚類詳解

    K-means聚類算法是一種常見(jiàn)的無(wú)監(jiān)督學(xué)習(xí)算法,用于將數(shù)據(jù)集分成k個(gè)不同的簇,下面這篇文章主要給大家介紹了關(guān)于Python如何通過(guò)手肘法實(shí)現(xiàn)k_means聚類的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • python 堆和優(yōu)先隊(duì)列的使用詳解

    python 堆和優(yōu)先隊(duì)列的使用詳解

    這篇文章主要介紹了python 堆和優(yōu)先隊(duì)列的使用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03

最新評(píng)論

赫章县| 高邑县| 肇东市| 黄大仙区| 蓬溪县| 班戈县| 阜城县| 财经| 滦南县| 白山市| 东台市| 抚宁县| 荔波县| 信阳市| 句容市| 和田市| 兴山县| 青田县| 满城县| 廉江市| 辽源市| 盐津县| 如东县| 宣化县| 建始县| 安国市| 和平县| 南和县| 连江县| 普定县| 孝义市| 甘洛县| 曲沃县| 宁都县| 兴业县| 绥德县| 洞头县| 吕梁市| 婺源县| 衡山县| 精河县|