AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

探索Word文檔導入導出的前端實現方案

來源: 責編: 時間:2024-06-17 17:33:48 112觀看
導讀最近由于AI應用的高速發展,使得文檔/知識庫成為了AI的首選試煉場。比如用AI提取PDF的大綱和關鍵內容,用AI總結電子書的內容,AI對DOC文檔進行潤色,優化等,這些都離不開對文檔的解析和處理。那么前端能不能實現對文檔的解析

最近由于AI應用的高速發展,使得文檔/知識庫成為了AI的首選試煉場。比如用AI提取PDF的大綱和關鍵內容,用AI總結電子書的內容,AI對DOC文檔進行潤色,優化等,這些都離不開對文檔的解析和處理。qhe28資訊網——每日最新資訊28at.com

那么前端能不能實現對文檔的解析和處理呢?答案是肯定的,接下來我就和大家分享一下:qhe28資訊網——每日最新資訊28at.com

  • 前端如何解析Word文件
  • 基于HTML,一鍵導出為Word文檔

當然口說無憑,我已經在Nocode/WEP文檔知識引擎中把Doc文檔功能實現了,大家感興趣的可以親自體驗一下。qhe28資訊網——每日最新資訊28at.com

圖片image.pngqhe28資訊網——每日最新資訊28at.com

好啦,接下來開始我們的技術分享。qhe28資訊網——每日最新資訊28at.com

往期精彩

  • 零代碼+AI的階段性復盤
  • 文檔引擎+AI可視化打造下一代文檔編輯器
  • 爆肝1000小時, Dooring零代碼搭建平臺3.5正式上線
  • 從零打造一款基于Nextjs+antd5.0的中后臺管理系統

Word文檔的本質

圖片圖片qhe28資訊網——每日最新資訊28at.com

image.pngqhe28資訊網——每日最新資訊28at.com

Word 文檔的本質是一種電子文檔格式,它主要用于創建、編輯和保存文本內容,同時還可以包含圖片、表格、圖表等多種元素。它是一種方便的工具,用于記錄、整理和交流信息。qhe28資訊網——每日最新資訊28at.com

doc 和 docx 是兩種常見的 Word 文檔格式,它們主要有以下區別:qhe28資訊網——每日最新資訊28at.com

  • 版本:doc 是 Word 2003 及之前版本的默認文件格式,而 docx 是 Word 2007 及之后版本的默認文件格式。
  • 兼容性:doc 格式的兼容性較好,可以被大多數舊版本的 Word 軟件打開。而 docx 格式在較新版本的 Word 中得到完全支持,但在一些舊版本的 Word 中可能需要安裝兼容性插件才能正常打開。
  • 文件體積:由于 docx 格式采用了更高效的壓縮技術,所以它的文件體積通常比 doc 格式小。
  • 安全性:docx 格式采用基于 XML 的格式,相對更安全一些,不容易受到宏病毒的攻擊。
  • 功能支持:docx 格式支持更多的新特性和功能,如高級的圖表和圖形處理、更豐富的格式選項、多媒體嵌入等。而 doc 格式則不支持這些新功能。

為了與時俱進,我們優先考慮最新標準格式 docx, 那么如何解析 docx 呢,這就要進一步分析一下 docx文件的本質了。qhe28資訊網——每日最新資訊28at.com

docx 的本質是什么

docx 我們第一感覺是一個文件,其實確實是一個文件(壓縮文件),我用解壓工具提取文件之后,它的文件結構是這樣的:qhe28資訊網——每日最新資訊28at.com

圖片圖片qhe28資訊網——每日最新資訊28at.com

進入 word 文件夾,可以看到如下目錄結構:qhe28資訊網——每日最新資訊28at.com

圖片圖片qhe28資訊網——每日最新資訊28at.com

打開一個 xml 文件可以看到類似如下的內容:qhe28資訊網——每日最新資訊28at.com

圖片圖片qhe28資訊網——每日最新資訊28at.com

看到這熟悉前端的小伙伴應該就比較熟悉了,我們可以使用類似于 document 的方法解析處理不同的XML標簽,從而實現對 docx 文件的解析。qhe28資訊網——每日最新資訊28at.com

如何實現Word文檔的解析

有了以上的分析結果,我們自己實現一個word文檔解析器就非常容易了,但是考慮到docx的xml 文件的復雜性,我們自己實現需要考慮很多種情況,比如:qhe28資訊網——每日最新資訊28at.com

  • 標題
  • 列表
  • 標題
  • 列表
  • 可定制的 docx 樣式到 HTML 的映射
  • 表格:表格格式(如邊框)
  • 腳注和尾注
  • 圖片
  • 粗體、斜體、下劃線、刪除線、上標和下標。
  • 鏈接
  • 換行
  • 文本框:文本框的內容被視為一個單獨的段落,出現在包含文本框的段落之后。
  • 注釋

如果是項目進度比較緊張的情況下,我們自己實現肯定是要被“批斗”的,所以我們可以考慮第三方成熟的解決方案。qhe28資訊網——每日最新資訊28at.com

第三方開源方案

這里直接上我總結的幾個開源方案:qhe28資訊網——每日最新資訊28at.com

  • Python 中的 python-docx
  • DocX:一個基于.NET框架的庫,用于操作Word 2007/2010/2013文件,具有簡單易用的API,無需安裝額外軟件,支持非商業用途。
  • OpenXml-PowerTools:一個基于Open XML文檔編程接口開發的開源工具,擴展了Open XML SDK的功能,支持將docx、pptx文件拆分為多個文件、將多個docx、pptx文件合并為一個文件、使用XML數據模板生成docx文件、docx文檔高保值轉換為Html頁面等功能
  • Mammoth 一個專注于轉換 .docx 文檔的工具庫,支持瀏覽器和服務器使用

那作為前端的小伙伴,我們首選 Mammoth。qhe28資訊網——每日最新資訊28at.com

圖片圖片qhe28資訊網——每日最新資訊28at.com

github地址:https://github.com/mwilliamson/mammoth.jsqhe28資訊網——每日最新資訊28at.com

實戰Word文檔解析

接下來和大家分享一下使用 Mammoth 來實現 docx 文檔解析。qhe28資訊網——每日最新資訊28at.com

先來看一個簡單的例子:qhe28資訊網——每日最新資訊28at.com

import mammoth from 'mammoth';mammoth.convertToHtml({path: "你的doc文件的路徑/document.docx"})    .then(function(result){        var html = result.value; // 解析出的html結果        var messages = result.messages; // 錯誤或者額外的提示信息    })    .catch(function(error) {        console.error(error);    });

以上代碼是在node.js 環境下實現的簡單例子,當然我們也可以在瀏覽器中直接使用,我在看完了它的文檔之后,加上自己的研究,寫了一個能自定義圖片上傳路徑,并支持修改文檔樣式的demo,這里分享一下:qhe28資訊網——每日最新資訊28at.com

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta http-equiv="X-UA-Compatible" content="IE=edge">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <title>Document</title></head><body>  <input type="file" onchange="handleFile(this.files[0])" />  <script src="https://unpkg.com/mammoth@latest/dist/mammoth.min.js"></script>  <script>    function handleFile(file) {      const reader = new FileReader();      reader.onload = function (loadEvent) {        const arrayBuffer = loadEvent.target.result;        mammoth.convertToHtml({ arrayBuffer: arrayBuffer }, {          // 設置自定義圖片上傳路徑          imageReader: (image) => {            return new Promise((resolve, reject) => {              // 在這里實現圖片上傳邏輯,并將上傳后的圖片路徑作為結果返回              resolve('your_uploaded_image_path');             });          },          // 設置文本樣式          styleMap: [            // 標題樣式            {              name: 'Heading 1',              element: 'h1',              attributes: {                'tyle': 'font-size: 24px; color: #333;',              },            },            // 正文樣式            {              name: 'Normal',              element: 'p',              attributes: {                'tyle': 'font-size: 16px; color: #666;',              },            },          ],        })        .then(result => {            console.log(result.value);          })        .catch(error => {            console.error(error);          });      };      reader.readAsArrayBuffer(file);    }  </script></body></html>

Word文檔導出實現

圖片圖片qhe28資訊網——每日最新資訊28at.com

實現將html導出為word文檔,方法其實也很簡單,這里直接分享一下我的方案:qhe28資訊網——每日最新資訊28at.com

const html = docRef.current;const blob = new Blob([html.innerHTML], { type: 'application/msword' });// 創建一個下載鏈接const link = document.createElement('a');link.href = URL.createObjectURL(blob);link.download = 'wep.doc';// 模擬點擊下載鏈接link.click();// 釋放資源URL.revokeObjectURL(link.href);

本質上就是我們將 html內容轉化為blob,并設置類型為application/msword, 最后通過revokeObjectURL api來實現docx文檔下載。qhe28資訊網——每日最新資訊28at.com

當然還有其他方案,這里也和大家分享一下:qhe28資訊網——每日最新資訊28at.com

import htmlDocx from 'html-docx-js/dist/html-docx';import FileSaver from 'file-saver';// 定義要導出的 HTML 內容const htmlContent = `  <h1>標題</h1>  <p>這是一段文本。</p>  <table border="1">    <tr>      <th>姓名</th>      <th>年齡</th>    </tr>    <tr>      <td>張三</td>      <td>25</td>    </tr>  </table>`;// 將 HTML 轉換為 Word 文檔const docx = htmlDocx.asBlob(htmlContent);// 保存 Word 文檔FileSaver.saveAs(docx, 'example.docx');

所有案例都在Nocode/WEP中實現,大家感興趣可以參考一下:http://wep.turntip.cn/qhe28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-94281-0.html探索Word文檔導入導出的前端實現方案

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 寧德時代實行“896 工作制”奮斗 100 天?內部員工回應: 非全員強制

下一篇: 我們一起聊聊如何設計一個秒殺系統?

標簽:
  • 熱門焦點
  • SpringBoot中使用Cache提升接口性能詳解

    環境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開始,對 Spring 應用程序提供了透明式添加緩存的支持。和事務支持一樣,抽象緩存允許一致地使用各
  • 一年經驗在二線城市面試后端的經驗分享

    忠告這篇文章只適合2年內工作經驗、甚至沒有工作經驗的朋友閱讀。如果你是2年以上工作經驗,請果斷劃走,對你沒啥幫助~主人公這篇文章內容來自 「升職加薪」星球星友 的投稿,坐
  • Java NIO內存映射文件:提高文件讀寫效率的優秀實踐!

    Java的NIO庫提供了內存映射文件的支持,它可以將文件映射到內存中,從而可以更快地讀取和寫入文件數據。本文將對Java內存映射文件進行詳細的介紹和演示。內存映射文件概述內存
  • 一條抖音4億人圍觀 ! 這家MCN比無憂傳媒還野

    作者:Hiu 來源:互聯網品牌官01 擦邊少女空降熱搜,幕后推手曝光被網友譽為&ldquo;純欲天花板&rdquo;的女網紅井川里予,近期因為一組哥特風照片登上熱搜,引發了一場互聯網世界關于
  • ESG的面子與里子

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之三伏大幕拉起,各地高溫預警不絕,但處于厄爾尼諾大&ldquo;烤&rdquo;之下的除了眾生,還有各大企業發布的ESG報告。ESG是&ldquo;環境保
  • 當家的盒馬,加速謀生

    來源 | 價值星球Planet作者 | 歸去來自己&ldquo;當家&rdquo;的盒馬,開始加速謀生了。據盒馬官微消息,盒馬計劃今年開放生鮮供應鏈,將其生鮮商品送往食堂。目前,盒馬在上海已經與
  • 華為發布HarmonyOS 4:更好玩、更流暢、更安全

    在8月4日的華為開發者大會2023(HDC.Together)大會上,HarmonyOS 4正式發布。自2019年發布以來,HarmonyOS一直以用戶為中心,經歷四年多的發展HarmonyOS已
  • 郭明錤稱華為和江淮汽車合作開發問界MPV,定價100萬左右、計劃明年量產

    8 月 1 日消息,郭明錤今天在 Medium 平臺發布博文,稱華為正在和江淮汽車合作,開發售價在 100 萬元的問界 MPV,預計在 2024 年第 2 季度量產,銷量目標為
  • 利用職權私自解除被封帳號 Meta開除20多名員工

    11月18日消息,據外媒援引知情人士表示,過去一年時間內,Facebook母公司Meta解雇或處罰了20多名員工以及合同工,指控這些人通過內部系統以不當方式重置用戶帳號,其
Top