vue html 轉(zhuǎn) word | html-docx-js

【覺得有用的小伙伴最后點(diǎn)個(gè)贊吧蟹蟹】
1. 下載

npm/cnpm install htmldocx :直接報(bào)錯(cuò)GET 404 Not found,我用的下載指令是 npm/cnpm install html-docx-js, 然后可以下載一個(gè)保存文件的插件file-saver昌妹,當(dāng)然你用傳統(tǒng)的創(chuàng)建a標(biāo)簽再打開一樣可行瞧哟,親測可用俗孝。

2. 避坑
2.1 引用

網(wǎng)上說 這樣引用import htmlDocx from "htmldocx"; 我是發(fā)現(xiàn)不好使,后來我找了一下node_modules包下面的html-docx-js 改成這樣引用:import htmlDocx from 'html-docx-js/dist/html-docx'; import { saveAs } from 'file-saver';

2.2 html

結(jié)合jQuery的開發(fā)方式直接寫html 包括css樣式,我沒有采用獲取id元素轉(zhuǎn)化html的方式:const htmlContent = document.getElementById("app"); const blob = htmlDocx.asBlob(htmlContent.outerHTML);

3. 上代碼
<script>
  import htmlDocx from 'html-docx-js/dist/html-docx'
  import { saveAs } from 'file-saver'
  export default {
    methods: {
      createDocx () {
        let mun = 100
        let month = 12
        let mun2 = 50
        let proportion = 80
        let time = '2024/04/01 23:59:59'
        let remark = '備注備注備注備注'
        let reportTime = '2024年4月28日'
        const htmlContent = `
          <!DOCTYPE HTML>
          <html>
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
                <meta http-equiv="Content-Style-Type" content="text/css">
                <meta name="generator" content="Aspose.Words for .NET 15.1.0.0">
                <title></title>
            </head>
            <body>
              <div>
                <h1 style="font-size:22pt; line-height:115%; margin:24pt 0pt 0pt; page-break-after:avoid; page-break-inside:avoid; text-align:center">
                  <span style="font-family:宋體; font-size:22pt; font-weight:normal">抽檢報(bào)告</span>
                </h1>
                <p style="margin:0pt 0pt 0pt 18pt"><span style="font-family:宋體; font-size:12pt">&nbsp;</span></p>
                <table cellspacing="0" cellpadding="0" style="border-collapse:collapse; margin-left:0pt">
                  <tbody>
                    <tr style="height:32pt">
                      <td style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:61.2pt">
                        <p style="margin:0pt"><span style="font-family:宋體; font-size:12pt">業(yè)務(wù)名稱</span></p>
                      </td>
                      <td colspan="4" style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:381.2pt">
                        <p style="margin:0pt"><span style="font-family:宋體; font-size:12pt">XXX業(yè)務(wù)</span></p>
                      </td>
                    </tr>
                    <tr style="height:28pt">
                      <td colspan="5" style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:453.2pt">
                        <p style="margin:0pt"><span style="font-family:宋體; font-size:12pt">采用XXX短信抽檢模板</span></p>
                      </td>
                    </tr>
                    <tr style="height:20pt">
                      <td rowspan="2" style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:61.2pt">
                        <p style="margin:0pt"><span style="font-family:宋體; font-size:12pt">短信抽檢</span></p>
                      </td>
                      <td style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:61.2pt">
                        <p style="margin:0pt"><span style="font-family:宋體; font-size:12pt">短信總量</span></p>
                      </td>
                      <td style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:94.2pt">
                        <p style="margin:0pt">
                          <span style="font-family:宋體; font-size:12pt">${mun}條(${month}月)</span>
                        </p>
                      </td>
                      <td style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:61.2pt">
                        <p style="margin:0pt"><span style="font-family:宋體; font-size:12pt">抽檢條數(shù)</span></p>
                      </td>
                      <td style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:132.2pt">
                        <p style="margin:0pt">
                          <span style="font-family:宋體; font-size:12pt">${mun2}條梨水,抽檢比例${proportion}%</span>
                        </p>
                      </td>
                    </tr>
                    <tr style="height:20pt">
                      <td colspan="2" style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:147.2pt">
                        <p style="margin:0pt"><span style="font-family:宋體; font-size:12pt">人工抽檢時(shí)間</span></p>
                      </td>
                      <td colspan="2" style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:223.2pt">
                        <p style="margin:0pt">
                          <span style="font-family:宋體; font-size:12pt">${time}</span>
                        </p>
                      </td>
                    </tr>
                    <tr style="height:110.65pt">
                      <td style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:61.2pt">
                        <p style="margin:0pt"><span style="font-family:宋體; font-size:12pt">短信抽檢結(jié)果及意見</span></p>
                      </td>
                      <td colspan="4" style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:381.2pt">
                        <ol type="1" style="margin:0pt; padding-left:0pt">
                          <li style="font-family:Cambria; font-size:12pt; margin:0pt 0pt 0pt 14.11pt; padding-left:3.89pt; text-indent:0pt">
                            <span style="font-family:宋體; font-size:12pt">抽檢短信標(biāo)識情況:</span>
                          </li>
                        </ol>
                        <table cellspacing="0" cellpadding="0" style="border-collapse:collapse; margin-left:0pt">
                          <tbody>
                            <tr>
                              <td style="border-bottom-color:#000000; border-bottom-style:dotted; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#bfbfbf; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:top; width:105.35pt">
                                <p style="margin:0pt; text-align:center">
                                  <span style="font-family:宋體; font-size:10.5pt; font-weight:bold; line-height: 14pt;">短信標(biāo)識(代碼)</span>
                                </p>
                              </td>
                              <td style="border-bottom-color:#000000; border-bottom-style:dotted; border-bottom-width:0.75pt; border-left-color:#bfbfbf; border-left-style:solid; border-left-width:0.75pt; border-right-color:#bfbfbf; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:top; width:105.35pt">
                                <p style="margin:0pt; text-align:center">
                                  <span style="font-family:宋體; font-size:10.5pt; font-weight:bold">全量條數(shù)</span>
                                </p>
                              </td>
                              <td style="border-bottom-color:#000000; border-bottom-style:dotted; border-bottom-width:0.75pt; border-left-color:#bfbfbf; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:top; width:105.35pt">
                                <p style="margin:0pt; text-align:center">
                                  <span style="font-family:宋體; font-size:10.5pt; font-weight:bold">抽檢條數(shù)</span>
                                </p>
                              </td>
                            </tr>
                            <tr>
                              <td style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#bfbfbf; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:dotted; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:top; width:105.35pt">
                                <p style="margin:0pt; text-align:center">
                                  <span style="font-family:宋體; font-size:10.5pt; font-weight:bold">合計(jì)</span>
                                </p>
                              </td>
                              <td style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#bfbfbf; border-left-style:solid; border-left-width:0.75pt; border-right-color:#bfbfbf; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:dotted; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:top; width:105.35pt">
                                <p style="margin:0pt; text-align:center">
                                  <span style="font-family:宋體; font-size:12pt">20</span>
                                </p>
                              </td>
                              <td style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#bfbfbf; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:dotted; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:top; width:105.35pt">
                                <p style="margin:0pt; text-align:center">
                                  <span style="font-family:宋體; font-size:12pt">50</span>
                                </p>
                              </td>
                            </tr>
                          </tbody>
                        </table>
                        <p style="margin:0pt 0pt 0pt 18pt"><span style="font-family:宋體; font-size:12pt">&nbsp;</span></p>
                        <ol start="2" type="1" style="margin:0pt; padding-left:0pt">
                          <li style="font-family:Cambria; font-size:12pt; margin:0pt 0pt 0pt 14.11pt; padding-left:3.89pt; text-indent:0pt">
                            <span style="font-family:宋體; font-size:12pt">抽檢人員填寫(備注): </span>
                            <span style="font-family:宋體; font-size:12pt">${remark}</span>
                          </li>
                        </ol>
                      </td>
                    </tr>
                    <tr style="height:25.15pt">
                      <td style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:61.2pt">
                        <p style="margin:0pt"><span style="font-family:宋體; font-size:12pt">&nbsp;</span></p>
                      </td>
                      <td colspan="4" style="border-bottom-color:#000000; border-bottom-style:solid; border-bottom-width:0.75pt; border-left-color:#000000; border-left-style:solid; border-left-width:0.75pt; border-right-color:#000000; border-right-style:solid; border-right-width:0.75pt; border-top-color:#000000; border-top-style:solid; border-top-width:0.75pt; padding-left:5.03pt; padding-right:5.03pt; vertical-align:middle; width:381.2pt">
                        <p style="line-height:28.6pt; margin:0pt 0pt 1pt; text-align:right">
                          <span style="font-family:宋體; font-size:12pt">報(bào)告時(shí)間:${reportTime}</span>
                        </p>
                      </td>
                    </tr>
                    <tr style="height:0pt">
                      <td style="width:72pt; border:none"></td>
                    </tr>
                  </tbody>
                </table>
                <p style="line-height:28.6pt; margin:0pt 0pt 1pt 180pt; text-align:justify; text-indent:36pt"><span style="font-family:宋體; font-size:15pt">&nbsp;</span></p>
              </div>
            </body>
          </html>
        `
        this.exportHtmlToWord(htmlContent)
      },
      exportHtmlToWord (htmlContent) {
        // 將 HTML 內(nèi)容轉(zhuǎn)換為 Blob 對象
        const blob = htmlDocx.asBlob(htmlContent)
        saveAs(blob, '導(dǎo)出.docx')
      }
    }
  }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市茵臭,隨后出現(xiàn)的幾起案子疫诽,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奇徒,死亡現(xiàn)場離奇詭異雏亚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)逼龟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門评凝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腺律,你說我怎么就攤上這事奕短。” “怎么了匀钧?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵翎碑,是天一觀的道長。 經(jīng)常有香客問我之斯,道長日杈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任佑刷,我火速辦了婚禮莉擒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瘫絮。我一直安慰自己涨冀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布麦萤。 她就那樣靜靜地躺著鹿鳖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪壮莹。 梳的紋絲不亂的頭發(fā)上翅帜,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天,我揣著相機(jī)與錄音命满,去河邊找鬼涝滴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛胶台,可吹牛的內(nèi)容都是我干的狭莱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼概作,長吁一口氣:“原來是場噩夢啊……” “哼腋妙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起讯榕,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤骤素,失蹤者是張志新(化名)和其女友劉穎匙睹,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體济竹,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡痕檬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了送浊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梦谜。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖袭景,靈堂內(nèi)的尸體忽然破棺而出唁桩,到底是詐尸還是另有隱情,我是刑警寧澤耸棒,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布荒澡,位于F島的核電站,受9級特大地震影響与殃,放射性物質(zhì)發(fā)生泄漏单山。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一幅疼、第九天 我趴在偏房一處隱蔽的房頂上張望米奸。 院中可真熱鬧,春花似錦爽篷、人聲如沸悴晰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膨疏。三九已至一睁,卻和暖如春钻弄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背者吁。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工窘俺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人复凳。 一個(gè)月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓瘤泪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親育八。 傳聞我的和親對象是個(gè)殘疾皇子对途,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容