Vue实现导出word文档的示例详解

 更新时间:2024年02月18日 10:42:17   作者:还是大剑师兰特  
这篇文章主要为大家详细介绍了Vue如何使用第三方库file-saver和html-docx-js实现导出word文档的效果,感兴趣的小伙伴可以跟随小编一起学习一下

示例说明

在Vue中导出Word文档,可以使用第三方库file-saver和html-docx-js。首先需要安装这两个库:

npm install file-saver html-docx-js --save

然后在Vue组件中使用这两个库来导出Word文档:

示例效果图

导出的文件效果截图

示例源代码

/*
* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)
* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: 2909222303@qq.com
* @weixin: gis-dajianshi
* @First published in CSDN
* @First published time: 2024-02-16
*/

<template>
	<div class="djs-box">
		<div class="topBox">
			<h3>vue导出word文档</h3>
			<div>大剑师兰特, 还是大剑师兰特,gis-dajianshi</div>
			<h4>
				<el-button type="primary" size="mini" @click="exportToWord()"> 导出word文档</el-button>
			</h4>
		</div>
		
		<div class="dajianshi" id="dajianshi">
			<h3> 这是我要导出的文件标题</h3>
			<p>This is a very small library that is capable of converting HTML documents to DOCX format that is used by
				Microsoft Word 2007 and onward. It manages to perform the conversion in the browser by using a feature
				called 'altchunks'. In a nutshell, it allows embedding content in a different markup language. We are
				using MHT document to ship the embedded content to Word as it allows to handle images. After Word opens
				such file, it converts the external content to Word Processing ML (this is how the markup language of
				DOCX files is called) and replaces the reference.</p>
			<p>
				Altchunks were not supported by Microsoft Word for Mac 2008 and are not supported by LibreOffice and
				Google Docs.</p>
			
		</div>
	</div>
</template>

<script>
	import FileSaver from 'file-saver';
	import htmlDocx from 'html-docx-js/dist/html-docx';
	export default {
		data() {
			return {
				message: 'hello world',
				price: 1234.56,
				date: '2022-01-01'
			}

		},
		methods: {
			exportToWord() {
				// 获取要导出的HTML内容
				const content = document.getElementById('dajianshi').innerHTML;
				// 将HTML内容转换为Word文档
				const converted = htmlDocx.asBlob(content);
				// 使用FileSaver保存Word文档
				FileSaver.saveAs(converted, 'example.docx');
			},
		},

	}
</script>
<style scoped>
	.djs-box {
		width: 1000px;
		height: 650px;
		margin: 50px auto;
		border: 1px solid deepskyblue;
	}

	.topBox {
		margin: 0 auto 0px;
		padding: 10px 0 20px;
		background: deepskyblue;
		color: #fff;
	}

	.dajianshi {
		width: 93%;
		height: 400px;
		margin: 5px auto 0;
		border: 1px solid #369;
		background-color: cde;
		padding: 20px;
	}

	p {
		font-size: 16px;
		text-align: left;
	}
</style>

参数说明:

要生成 DOCX,只需将 HTML 文档(作为字符串)传递给 asBlob 方法以接收包含输出文件的 Blob(或缓冲区)。

var converted = htmlDocx.asBlob(content);
saveAs(converted, ‘test.docx');

asBlob 可以采用其他选项来控制文档的页面设置:

orientation: landscape or portrait (default)

margins: map of margin sizes (expressed in twentieths of point, see WordprocessingML documentation for details):

top: number (default: 1440, i.e. 2.54 cm)

right: number (default: 1440)

bottom: number (default: 1440)

left: number (default: 1440)

header: number (default: 720)

footer: number (default: 720)

gutter: number (default: 0)

重要提示:

please pass a complete, valid HTML (including DOCTYPE, html and body tags). This may be less convenient, but gives you possibility of including CSS rules in style tags.

html-docx-js is distributed as ‘standalone’ Browserify module (UMD). You can require it as html-docx. If no module loader is available, it will register itself as window.htmlDocx. See test/sample.html for details.

API 参考网址

https://www.npmjs.com/package/html-docx-js

到此这篇关于Vue实现导出word文档的示例详解的文章就介绍到这了,更多相关Vue导出word内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 手把手教你使用宝塔部署Vue项目

    手把手教你使用宝塔部署Vue项目

    这篇文章主要给大家介绍了关于如何使用宝塔部署Vue项目的相关资料,宝塔面板提供了非常方便的方式来部署 Vue 项目,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • Vue的路由及路由钩子函数的实现

    Vue的路由及路由钩子函数的实现

    这篇文章主要介绍了Vue的路由及路由钩子函数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Vue.js中extend选项和delimiters选项的比较

    Vue.js中extend选项和delimiters选项的比较

    这篇文章主要介绍了Vue.js中extend选项和delimiters选项的比较的相关资料,需要的朋友可以参考下
    2017-07-07
  • vue中vxe-table虚拟滚动列表的使用详解

    vue中vxe-table虚拟滚动列表的使用详解

    vxe-table 是一个功能强大的 Vue 表格组件,它支持虚拟滚动列表作为其核心功能之一,本文主要介绍一下vxe-table的虚拟滚动列表功能的使用场景和优势,感兴趣的可以了解下
    2023-12-12
  • element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)

    element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)

    这篇文章主要介绍了element-plus一个vue3.xUI框架(element-ui的3.x 版初体验),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Vue组件通信之Bus的具体使用

    Vue组件通信之Bus的具体使用

    本篇文章主要介绍了Vue组件通信之Bus的具体使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Vue3使用ref与reactive创建响应式对象的示例代码

    Vue3使用ref与reactive创建响应式对象的示例代码

    这篇文章主要详细介绍了Vue3使用ref与reactive创建响应式对象的方法步骤,文中通过代码示例和图文结合的方式给大家介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-02-02
  • 详解让sublime text3支持Vue语法高亮显示的示例

    详解让sublime text3支持Vue语法高亮显示的示例

    本篇文章主要介绍了让sublime text3支持Vue语法高亮显示的示例,非常具有实用价值,需要的朋友可以参考下
    2017-09-09
  • Vue 页面跳转不用router-link的实现代码

    Vue 页面跳转不用router-link的实现代码

    这篇文章主要介绍了 Vue 页面跳转不用router-link的实现代码,文中给大家介绍了vue router-link跳转传值示例,需要的朋友可以参考下
    2018-04-04
  • vue实现微信二次分享以及自定义分享的示例

    vue实现微信二次分享以及自定义分享的示例

    这篇文章主要介绍了vue实现微信二次分享以及自定义分享的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论