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…