html-docx-js 導出word

2025.08.23今天我學習了如何將html頁面內容導出到word中,并保持原有格式,效果如下:

代碼如下:

1:列表頁面按鈕<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="exportWorddata"
>導出word</el-button><ExportWord ref="exportWord"/>import ExportWord from './ExportWord.vue'components: { ExportWord },exportWorddata(){
this.$refs.exportWord.initdata()
},2:導出頁面    點擊 初始化echarts  點擊 初始化echarts圖片 點擊  導出<template >
<el-dialog :title="title" :visible.sync="open" width="60%" append-to-body>
<div slot="footer">
<el-button type="primary" @click="daochu">導出</el-button>
<el-button type="primary" @click="initdata">初始化echarts</el-button>
<el-button type="primary" @click="getImg">初始化echarts圖片</el-button>
<el-button @click="cancel">關 閉</el-button>
</div>
<div id="htmlcontent">
<div id="demo">
<div class="toptitle">測試導出word</div>
<div class="title_sub">
<span>檢查時間:2021年07月20日</span
>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span>檢查地點:巡檢點1</span>
</div>
<table border="1" class="table_style">
<!-- 頭 -->
<thead>
<th>序號</th>
<th>檢查內容</th>
<th>檢查情況</th>
<th>責令當場改正情況</th>
</thead>
<!-- body -->
<tbody>
<tr v-for="(item, i) in approvalLogs" :key="i">
<td>{{ i + 1 }}</td>
<td>{{ item.approveMsg }}</td>
<td>{{ item.approveDate }}</td>
</tr>
<tr style="height: 150px">
<td colspan="2">檢查人員(簽名)</td>
<td colspan="2">張三,李四,王五</td>
</tr>
<tr style="height: 100px">
<td colspan="2">單位領導(簽名)</td>
<td colspan="2">張三</td>
</tr>
</tbody>
</table>
<img :src="imgSrc" width="590" height="360" />
<div style="height: 350px; width: 600px">
<div id="juZuChart1" style="height: 100%; width: 100%" />
</div>
</div>
</div></el-dialog></template>
<script>// npm install file-saver
// npm install html-docx-js
import htmlDocx from "html-docx-js/dist/html-docx";
import FileSaver from "file-saver";
import * as echarts from 'echarts';export default {data() {
return {
title: "",
open: false, // 表單參數myChart:null,
imgSrc:'',
approvalLogs:[
{
approveMsg:"測試數據1",
approveDate:"測試數據2"
}
],
};
},
mounted() {},
methods: {
// 取消按鈕
cancel() {
this.open = false;},initdata (){
let _this = this;
_this.open = true;
_this.title = "導出word";
this.initEchart()
},daochu(){
let contentHtml = document.getElementById("htmlcontent").innerHTML;
let cssHTML = `#demo {
width: 800px;
margin: auto;
padding: 40px;
box-sizing: border-box;
}
#demo .toptitle {
width: 100%;
text-align: center;
font-size: 25px;
font-weight: bold;
}
#demo .title_sub {
padding: 30px 0;
}
.table_style td,
th {
padding: 10px;
font-size: 15px;
}
.table_style {
border-collapse: collapse;
width: 100%;
text-align: left;
}`;
let content = `
<!DOCTYPE html><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style>
${cssHTML}
</style>
</head>
<body>
${contentHtml}
</body>
</html>`;
let converted = htmlDocx.asBlob(content);
FileSaver.saveAs(converted, "測試導出.docx");
},//*************Echart數據************************
initEchart() {
// 基于準備好的dom,初始化echarts實例
this.myChart = echarts.init(document.getElementById('juZuChart1'));// 指定圖表的配置項和數據
let option = {
title: {
text: 'ECharts 折線圖示例'
},
tooltip: {},
legend: {
data:['銷量']
},
xAxis: {
data: ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
},
yAxis: {},
series: [{
name: '銷量',
type: 'line',
data: [5, 20, 36, 10, 10, 20]
}]
};// 使用剛指定的配置項和數據顯示圖表。
this.myChart.setOption(option)},
// 獲取echarts圖片
getImg() {
this.imgSrc = this.myChart.getDataURL({
type: 'png',
pixelRatio: 2,
backgroundColor: '#fff'
});
},
//*************Echart數據************************},
computed: {},
mounted() {},};
</script>
<style lang="scss" scoped>
.demo {
width: 800px;
margin: auto;
padding: 40px;
box-sizing: border-box;
}
.demo .toptitle {
width: 100%;
text-align: center;
font-size: 25px;
font-weight: bold;
}
.demo .title_sub {
padding: 30px 0;
}
.table_style td,
th {
padding: 10px;
font-size: 15px;
}
.table_style {
border-collapse: collapse;
width: 100%;
text-align: left;
}</style>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/96561.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/96561.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/96561.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Science Robotics 通過人機交互強化學習進行精確而靈巧的機器人操作

機器人操作仍然是機器人技術中最困難的挑戰之一&#xff0c;其方法范圍從基于經典模型的控制到現代模仿學習。盡管這些方法已經取得了實質性進展&#xff0c;但它們通常需要大量的手動設計&#xff0c;在性能方面存在困難&#xff0c;并且需要大規模數據收集。這些限制阻礙了它…

Dism++備份系統時報錯[句柄無效]的解決方法

當使用Dism進行系統備份時遇到“[句柄無效]”的錯誤&#xff0c;這通常是由于某些文件或目錄的句柄無法正確訪問或已被占用所導致。以下是一種有效的解決方法&#xff1a;一、查看日志文件定位日志文件&#xff1a;首先&#xff0c;打開Dism軟件所在的目錄&#xff0c;并找到其…

華為/思科/H3C/銳捷操作系統操作指南

好的,這是一份針對 華為(VRP)、思科(IOS/IOS-XE)、H3C(Comware)和銳捷(Ruijie OS) 這四大主流網絡設備廠商操作系統的對比操作指南。本指南將聚焦于它們的共性和特性,幫助你快速掌握多廠商設備的基本操作。 四大網絡廠商操作系統綜合操作指南 一、 核心概念與模式對…

一文讀懂 DNS:從域名解析到百度訪問全流程

目錄 前言 一、什么是 DNS&#xff1f;—— 互聯網的 “地址簿” 為什么需要 DNS&#xff1f; DNS 的核心參數 二、DNS 解析原理&#xff1a;遞歸與迭代的協作 1. 兩種核心查詢方式 2. 完整解析流程&#xff08;以www.baidu.com為例&#xff09; 緩存清理命令 三、DNS …

初試Docker Desktop工具

文章目錄1. 概述2. 下載3. 安裝4. 注冊5. 登錄6. 啟動7. 容器8. 運行容器8.1 運行容器的鏡像8.2 獲取示例應用8.3 驗證Dockerfile文件8.4 拉取Alpine精簡鏡像8.5 創建鏡像8.6 運行容器8.7 查看前端9. 訪問靜態資源9.1 本地靜態資源9.2 創建服務器腳本9.3 修改Dockerfile文件9.4…

百度披露Q2財報:營收327億,AI新業務收入首超百億

8月20日&#xff0c;百度發布2025年第二季度財報&#xff0c;顯示季度總營收327億元&#xff0c;百度核心營收263億元&#xff0c;歸屬百度核心凈利潤74億元&#xff0c;同比增長35%。受AI驅動&#xff0c;涵蓋智能云在內的AI新業務收入增長強勁&#xff0c;首次超過100億元&am…

【字母異位分組】

思路 核心思路&#xff1a;使用排序后的字符串作為鍵&#xff0c;將原始字符串分組 鍵的選擇&#xff1a;對于每個字符串&#xff0c;將其排序后得到標準形式作為鍵分組存儲&#xff1a;使用哈希表&#xff0c;鍵是排序后的字符串&#xff0c;值是對應的原始字符串列表結果構建…

高防cdn如何緩存網頁靜態資源

為什么需要優化網頁靜態資源的緩存&#xff1f; 網頁靜態資源包括圖片、CSS、JavaScript等文件&#xff0c;它們通常體積大、訪問頻繁。在網頁訪問過程中&#xff0c;如果每次都從源服務器請求這些靜態資源&#xff0c;會導致網絡延遲和帶寬消耗。而優化網頁靜態資源的緩存&am…

使用Pandas進行缺失值處理和異常值檢測——實戰指南

目錄 一、缺失值處理 1.1 缺失值的識別 1.2 刪除缺失值 1.3 填充缺失值 二、異常值檢測 2.1 異常值的定義 2.2 常用檢測方法 IQR&#xff08;四分位數間距&#xff09;法 Z-score&#xff08;標準分數&#xff09;法 三、實戰案例&#xff1a;基因表達數據預處理 四…

B.30.01.1-Java并發編程及電商場景應用

摘要 本文深入探討了Java并發編程的核心概念及其在電商系統中的實際應用。從基礎并發機制到高級并發工具&#xff0c;結合電商業務場景中的典型問題&#xff0c;如高并發秒殺、庫存管理、訂單處理等&#xff0c;提供了實用的解決方案和最佳實踐。 1. Java并發編程基礎 1.1 并發…

怎樣避免游戲檢測到云手機?

以下是一些可能避免游戲檢測到云手機的方法&#xff1a;云手機可能會因網絡配置等因素出現一些異常網絡行為&#xff0c;如網絡延遲的規律性變化等&#xff0c;在使用云手機玩游戲時&#xff0c;盡量保持網絡行為的穩定性和自然性&#xff0c;避免短時間內頻繁切換網絡連接&…

文件上傳 --- uploadlabs靶場

目錄 1 前端和js校驗 抓包改包 2 . 2.1 .htaccess&#xff08;偽靜態&#xff09; 2.2 %00截斷 &#xff08;php5.2&#xff09; 2.3 user_init_ 2.4 3 圖片碼防御 4 競爭型漏洞 思路&#xff1a; 容易出現的問題: 1 前端和js校驗 關閉JS的代碼&#xff0c;上傳PHP…

漢化版本 k6 dashboard

目前官方提供的 dashboard 只有英文版本&#xff0c;國內使用不方便&#xff0c;因此 fork 了下官方倉庫&#xff0c;添加了漢化版本 https://github.com/kinghard7/xk6-dashboardhttps://github.com/kinghard7/xk6-dashboard安裝 xk6 構建程序&#xff1a;go install go.k6.i…

視覺識別:ffmpeg-python、ultralytics.YOLO、OpenCV-Python、標準RTSP地址格式

視覺識別:ffmpeg-python、ultralytics.YOLO、OpenCV-Python、標準RTSP地址格式 ffmpeg-python 核心概念 常用過濾器(Filters) 高級操作 視頻截幀轉換圖片示例 參考 ultralytics.YOLO(You Only Look Once) 1. 模型加載 2. 訓練模型 (`train()`) 標準YAML格式示例 3. 預測 (…

浙江龍庭翔新型建筑材料有限公司全屋定制:暢享品質生活新境界!

在消費升級的時代浪潮中&#xff0c;浙江龍庭翔新型建筑材料有限公司以卓越的產品質量和創新的服務理念&#xff0c;重新定義全屋定制的內涵&#xff0c;為追求高品質生活的消費者打造理想家居。公司秉承"匠心質造&#xff0c;樂享生活"的核心價值觀&#xff0c;將環…

鷹角網絡基于阿里云 EMR Serverless StarRocks 的實時分析工程實踐

一、客戶背景與業務挑戰 1.1 客戶介紹 鷹角網絡&#xff08;HYPERGRYPH&#xff09; 成立于2017年&#xff0c;總部位于上海&#xff0c;是中國知名游戲研發與發行公司&#xff0c;代表產品包括現象級手游《明日方舟》及《泡姆泡姆》《來自星辰》《終末地》等。公司依托阿里云…

LWIP的IP 協議棧

IP 協議棧 下面的分析把上文對 IPv4 概念的說明與 lwIP 中的具體實現代碼對應起來&#xff0c;便于將理論與實現對照理解。分析覆蓋&#xff1a;輸入處理、路由與轉發、輸出與報文構建、分片/重組、校驗和與各種配置點&#xff08;hook、選項、統計等&#xff09;。目錄&#x…

高并發短信網關平臺建設方案概述

本方案涵蓋了架構設計、技術選型、核心功能、高可用保障以及實施路徑,旨在構建一個能夠應對千萬級日吞吐量、穩定、安全、可擴展的現代短信網關平臺。 高并發短信網關平臺建設方案 一、 項目概述與目標 1.1 項目背景 為滿足公司業務(如用戶注冊、登錄、交易驗證、營銷通知…

阿里云服務-開啟對象存儲服務及獲取AccessKey教程

&#xff08;1&#xff09;阿里云OSS簡介 &#xff08;2&#xff09;打開阿里云網址&#xff1a;阿里云登錄 - 歡迎登錄阿里云&#xff0c;安全穩定的云計算服務平臺 點擊“立即開通” &#xff08;2&#xff09;開通成功后&#xff0c;充值任意金額 頂欄選擇“費用”|“充值…

[特殊字符] 高可用高并發微服務架構設計:Nginx 與 API Gateway 的協同實踐

一、Nginx 和 Gateway 的關系&#xff1a;是替代還是協作&#xff1f; 不是替代關系&#xff0c;而是協作關系。 1. Nginx 的角色&#xff08;通常在最外層&#xff09; 反向代理 & 負載均衡&#xff1a;將前端請求分發到多個后端服務或網關實例。 靜態資源服務&#xf…