国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python3處理docx并flask顯示

這篇具有很好參考價(jià)值的文章主要介紹了python3處理docx并flask顯示。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言:

最近有需求處理docx文件,并講內(nèi)容顯示到頁面,對world進(jìn)行在線的閱讀,這樣我這里就使用flask+Document對docx文件進(jìn)行處理并顯示,下面直接上代碼:

Document處理:

首先下載Document的庫文件,先直接安裝最新版的python-docx,如果不行則換成1.1.0版本:

pip install python-docx
pip install python-docx==1.1.0

處理docx代碼如下:

def ReadVADocx(ProjectName,DocxName):
    docxfilepath = vaReportDir + "\\" + ProjectName + "\\" + DocxName
    paragraphs = ReadDocx(docxfilepath)
    return paragraphs

def ReadDocx(docxfilepath):
    doc = Document(docxfilepath)
    paragraphs = list()
    pattern = re.compile('rId\d+')
    for graph in doc.paragraphs:
        level = graph.style.name.split(' ')[-1]
        if level == "Normal":
            level = None
        elif level == "Preformatted":
            level = None
        paragraph = {
            'text': graph.text,
            'level': level,
            'images': ""
        }
        paragraphs.append(paragraph)
        for run in graph.runs:
            if run.text == '':
                contentID = pattern.search(run.element.xml)
                if contentID:
                    contentID = contentID.group(0)
                    try:
                        contentType = doc.part.related_parts[contentID].content_type
                    except KeyError as e:
                        print(e)
                        continue
                    if not contentType.startswith('image'):
                        continue
                    imgData = doc.part.related_parts[contentID].blob
                    image_base64 = base64.b64encode(imgData).decode('utf-8')
                    paragraph = {
                        'text':  run.text,
                        'level': run.style.name.split(' ')[-1] if run.style.name.startswith('Heading') else None,
                        'images': image_base64
                    }
                    paragraphs.append(paragraph)

上述代碼會(huì)對docx文件進(jìn)行遍歷,并將對應(yīng)的內(nèi)容和等級放入數(shù)組中

下面是調(diào)用代碼:

@app.route('/ViewVADocx', methods=['GET'])
def ViewVADocx():
     try:
        DocxName = request.args.get('docx')
        ProjectName = request.args.get('name')
        paragraphs = engine.ReadVADocx(ProjectName,DocxName)
        return render_template("viewdocx.html", n_getname=ProjectName, n_user=user,paragraphs=paragraphs)
     except Exception as e:
         return render_template('error-500.html')

html編寫:?

然后就是需要講對應(yīng)的內(nèi)容在頁面進(jìn)行展示,下面列出html代碼:

{% extends "mould.html" %}

{% block head %}
{% endblock %}

{% block body %}
        <!--body wrapper start-->
        <div class="wrapper">
            <div class="floating-box" id="floatingBox">↑回到頂部↑</div>

              <!--Start Page Title-->
               <div class="page-title-box">
                    <h4 class="page-title">{{ n_getname }}:掃描節(jié)點(diǎn)線</h4>
                    <div class="clearfix"></div>
                 </div>
                  <!--End Page Title-->
                <!--Start row-->
                  <div class="row">
                     <div class="col-md-12">
                         <div class="white-box">
                            <h2 style="font-weight: bold;">快速導(dǎo)航:</h2>
                            {% for paragraph in paragraphs %}
                                {% if paragraph.level == "1"  %}
                                    <p>
                                    <a href="#Section{{ loop.index0 }}" class="hover-link" style="font-weight: bold;">{{ paragraph.text }}</a>
                                {% elif  paragraph.level == "2" %}
                                    <p style="text-indent: 25px;">
                                    <a href="#Section{{ loop.index0 }}" class="hover-link2" style="font-weight: bold;">{{ paragraph.text }}&#9;</a>
                                    </p>
                                {% endif %}
                            {% endfor %}
                         </div>
                            {% for paragraph in paragraphs %}
                                {% if paragraph.level  %}
                                    {% if paragraph.level == "Title" %}
<!--                                        <h2 align="center">{{ paragraph.text }}</h2>-->
                                    {% elif  paragraph.level == "1" %}
                                        </div>
                                        <div class="white-box">
                                        <h{{ paragraph.level }} id="Section{{ loop.index0 }}" style="font-weight: bold;">{{ paragraph.text }}</h{{ paragraph.level }}>
                                    {% else %}
                                        <h{{ paragraph.level }} id="Section{{ loop.index0 }}">{{ paragraph.text }}</h{{ paragraph.level }}>
                                    {% endif %}
                                {% else %}
                                    {% if paragraph.images %}
                                        <p><img src="data:image/png;base64,{{ paragraph.images }}" alt="Image"></p>
                                    {% else %}
                                        <p style="color: black;">{{ paragraph.text }}</p>
                                    {% endif %}
                                {% endif %}
                            {% endfor %}

                     </div>
                </div>
        </div>

{% endblock %}

{% block list %}
        <style>
           .hover-link {
                font-size: 20px;
            }
            .hover-link:hover {
                color: red;
                font-size: 30px;
            }
            .hover-link2 {
                font-size: 15px;
            }
            .hover-link2:hover {
                color: red;
                font-size: 20px;
            }
        </style>
      <style>
        /* CSS 樣式,用于定義懸浮框的外觀 */
        .floating-box {
          position: fixed;
          bottom: 20px;
          right: 20px;
          width: 80px;
          height: 50px;
          background-color: #ff9900;
          color: #fff;
          text-align: center;
          line-height: 50px;
          cursor: pointer;
        }
      </style>
  <script>
    // JavaScript 代碼
    var floatingBox = document.getElementById('floatingBox');

    // 點(diǎn)擊事件監(jiān)聽器
    floatingBox.addEventListener('click', function() {
      window.scrollTo({ top: 0, behavior: 'smooth' });
    });
  </script>
{% endblock %}

其中添加了樣式和回到頂部等小功能,方便瀏覽,最后的使用效果如下:

python3處理docx并flask顯示,代碼編程,flask,python,后端?

后記:

代碼只做了docx文件的內(nèi)容展示,包括文字和圖片,并對等級進(jìn)行了劃分,沒有對docx的修改功能,感興趣的可以自己研究下?

?文章來源地址http://www.zghlxwxcb.cn/news/detail-775373.html

?

到了這里,關(guān)于python3處理docx并flask顯示的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python - flask后端開發(fā)筆記

    ? Flask入門 有一篇很全面的博客可以參考:Python Flask Web 框架入門 跨域問題處理 文件發(fā)送 ?

    2024年02月07日
    瀏覽(26)
  • python3 flask 實(shí)現(xiàn)對config.yaml文件的內(nèi)容的增刪改查,并重啟服務(wù)

    python3 flask 實(shí)現(xiàn)對config.yaml文件的內(nèi)容的增刪改查,并重啟服務(wù)

    ?config.yaml配置文件內(nèi)容 功能就是userpass下的用戶名和密碼做增刪改查,并重啟hy2服務(wù) 直接上代碼 add功能,帶驗(yàn)證 del功能 ? 查詢功能? 代碼完成:chatgpt4?

    2024年02月22日
    瀏覽(22)
  • Python Flask 后端向前端推送信息——輪詢、SSE、WebSocket

    Python Flask 后端向前端推送信息——輪詢、SSE、WebSocket

    后端向前端推送信息,通知任務(wù)完成 輪詢 SSE WebSocket 請求方式 HTTP HTTP TCP長連接 觸發(fā)方式 輪詢 事件 事件 優(yōu)點(diǎn) 實(shí)現(xiàn)簡單易兼容 實(shí)現(xiàn)簡單開發(fā)成本低 全雙工通信,開銷小,安全,可擴(kuò)展 缺點(diǎn) 消耗較大 不兼容IE 傳輸數(shù)據(jù)需二次解析,開發(fā)成本大 適用場景 服務(wù)端向客戶端單向

    2023年04月19日
    瀏覽(51)
  • flask-cache使用報(bào)錯(cuò)Python3 ModuleNotFoundError: No module named ‘werkzeug.contrib‘

    Flask ? ? ? ? ? ? ?2.1.2 Flask-Cache ? ? ? ?0.13.1 Werkzeug ? ? ? ? ? 2.1.2 當(dāng)使用了flask_cache時(shí)導(dǎo)致運(yùn)行時(shí)問題出現(xiàn):ModuleNotFoundError: No module named \\\'werkzeug.contrib\\\' 1、修改文件/Users/zhangyanli/.pyenv/versions/flaskenv/lib/python3.7/site-packages/flask_cache/__init__.py。將上一行改為下一行 【備注】這個(gè)

    2024年02月09日
    瀏覽(52)
  • python處理Excel Pandas xlwings numpy, jupyter,docx,jieba 詞頻統(tǒng)計(jì) flash

    python處理Excel Pandas xlwings numpy, jupyter,docx,jieba 詞頻統(tǒng)計(jì) flash

    順序不變,是可以的 如果李四和王五兩行換一下,就不對了, 結(jié)果 pandas的nlargest(n,“排序的列”),只能求最大N個(gè)值 同比 df[‘昨日’] = df[“銷售金額”].shift() shift() 會(huì)把銷售金額放入昨日 python 在網(wǎng)頁上顯示Excel Excel 修改數(shù)據(jù),網(wǎng)頁只有刷新就可以了。 python 制作網(wǎng)頁查詢

    2024年02月10日
    瀏覽(21)
  • 手機(jī)版python編程軟件下載,手機(jī)python3.8編程軟件

    手機(jī)版python編程軟件下載,手機(jī)python3.8編程軟件

    這篇文章主要介紹了手機(jī)python編程軟件哪個(gè)好,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲,下面讓小編帶著大家一起了解一下。 本篇文章給大家談?wù)劙沧渴謾C(jī)python編程軟件,以及安卓好用的python編輯器,希望對各位有所幫助,不要忘了

    2024年02月19日
    瀏覽(20)
  • 手機(jī)版python編程軟件下載,手機(jī)python3.7編程軟件

    手機(jī)版python編程軟件下載,手機(jī)python3.7編程軟件

    大家好,小編來為大家解答以下問題,手機(jī)python編程軟件哪個(gè)好,手機(jī)版python編程軟件下載,現(xiàn)在讓我們一起來看看吧! 編程是一項(xiàng)非常有用也很有趣的技能,但是很多人可能覺得在電腦上學(xué)習(xí)編程太麻煩了,或者沒有時(shí)間和條件去學(xué)習(xí)。其實(shí),在手機(jī)上也可以學(xué)習(xí)編程哦!

    2024年02月03日
    瀏覽(49)
  • Python 學(xué)習(xí)之路:python3中pygame解決中文顯示

    Python 學(xué)習(xí)之路:python3中pygame解決中文顯示

    ????????這篇文章主要介紹python3中pygame解決中文顯示問題,通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下。 ? 1.實(shí)例代碼展示: 2.實(shí)例運(yùn)行效果: 3.路徑和字體設(shè)置: ????????需要自己下載好字體,放置一個(gè)指定

    2024年02月11日
    瀏覽(22)
  • python3.7手機(jī)編程軟件下載,用手機(jī)編程python的軟件

    python3.7手機(jī)編程軟件下載,用手機(jī)編程python的軟件

    大家好,小編來為大家解答以下問題,手機(jī)python3.0編程軟件哪個(gè)好,python編程手機(jī)軟件哪個(gè)好,今天讓我們一起來看看吧! 手機(jī)最強(qiáng)Python編程神器,在手機(jī)上運(yùn)行Python不再是夢!來源丨軟件測評說手機(jī)編程軟件有很多,大部分都很難使用,操作不靈活,甚至不能安裝第三方庫快碼知

    2024年01月19日
    瀏覽(22)
  • 【python】flask模板渲染引擎Jinja2,通過后端數(shù)據(jù)渲染前端頁面

    【python】flask模板渲染引擎Jinja2,通過后端數(shù)據(jù)渲染前端頁面

    ?? 歡迎大家來到景天科技苑?? ???? 養(yǎng)成好習(xí)慣,先贊后看哦~???? ?? 作者簡介:景天科技苑 ??《頭銜》:大廠架構(gòu)師,華為云開發(fā)者社區(qū)專家博主,阿里云開發(fā)者社區(qū)專家博主,CSDN新星創(chuàng)作者,掘金優(yōu)秀博主,51CTO博客專家等。 ??《博客》:Python全棧,前后端開

    2024年04月11日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包