前端如何做生成word?获得模板文件的二进制内容的方法,JSZipUtils.getBinaryContent(path, option) 提供path和option两个参数。我们来看一下path,前端开发最首先想到的可能是绝对路径或者相对路径,你可能还会用到@这个符号作为根目录使用,那么,前端如何做生成word?一起来了解一下吧。
工作中经常会遇到根据不同数据导出文档的情况,现在源陆我们就来看一下基于docxtemplater来导出word文档的方法,使用起来非常便捷。
下面简单介绍一下这几个插件的功能:
下面列出几中常见雹拿顷的docxtemplater语法
word模板文件中语法:
word模板文件中语法:
word模板文件中语法:
word模板文件中语法:
在这里关于模板文件的路径tempDocxPath我们要着重说一下。
在使用的过程中应该有不少人会遇到这种报错: Can't find end of central directory : is this a zip file ?
那这到底是什么原因导致的呢?
获得模板文件的二进制内容的方法,JSZipUtils.getBinaryContent(path, option) 提供path和option两个参数。我们来看一下path,前端开发最首先想到的可能是绝对敏宏路径或者相对路径,你可能还会用到@这个符号作为根目录使用,但在这里你显然不能这么用。
首先是action的createDoc方法:
[java]
/**
* 通过HttpCient调羡启用报告服务器的方法生成报告 DOC
*/
public String createDoc() throws Exception {
//定义放回成功与否的判断码
String prMsg="";
// 获取当前的用户
UserVo userVo = CommonUtils.getUserMessage();
//获取模版类型
docType = Struts2Utils.getParameter("docType");
//重新创建文档
String creatOrnot = Struts2Utils.getParameter("creatOrnot");
//获取组组编号参数
workgroupId = Struts2Utils.getParameter("workgroupId");
//获取评估用例实例兄搜如ID参数
evtcaseInstId = Struts2Utils.getParameter("evtcaseInstId");
if(CommonUtils.isNotNull(docType)){
//获取项目Id
projectId = Struts2Utils.getParameter("projectId");
if(!CommonUtils.isNotNull(projectId)){
if(CommonUtils.isNotNull(this.getIdFromSession("PM_PROJECTID"))){
projectId = this.getIdFromSession("PM_PROJECTID").toString();
}else{
Struts2Utils.getRequest().setAttribute("msg", "请先选择项目!");
}
}
if(CommonUtils.isNotNull(projectId)){
prMsg = infoSystemDescService.downloadFileByUrl(projectId, userVo.getUserId(), workgroupId, evtcaseInstId, docType, creatOrnot);
}
}
return "docList";
}
注:在我贴出来的代码中,能看懂就漏培行了,有些不用管他(可能是其他业务方面的判断),关于最后返回的prMsg---代表各种状态 主要表示成功与否或者是出错的信息。
材料/:word2007
1、使用电脑网页浏览器打开需要操作的网页。蠢雀闭
2、在网页任意位置点击鼠标右键,选带裂择“网页另存为”。
3、根岁皮据需要将网页文件保存至电脑指定位置。
4、新建一个WORD文档,从WORD文档内打开文件
5、文件类型中选择“所有网页”。
6、可以看到网页文件已经出现在WORD文档内。
7、最后经过整理得到最终WORD文档,然后将文件保存为doc或者docx格式即可。
用java生成word文档
poi是apache的一个项目,不过就算用poi你可能都觉得很烦昌裂,不过不要紧,这里提供了更加简单的一个接口颤迅宽给你:
http://mirrors.ibiblio.org/pub/mirrors/maven2/org/textmining/tm-extractors/0.4/
这个包就是:tm-extractors-0.4.jar
之后,放到你的classpath就可以了茄亮,下面是如何使用它的一个例子:
import java.io.*;
import org.textmining.text.extraction.WordExtractor;
/**
*
Title: pdf extraction
*
Description: email:chris@matrix.org.cn
*
Copyright: Matrix Copyright (c) 2003
*
Company: Matrix.org.cn
* @author chris
* @version 1.0,who use this example pls remain the declare
*/
public class PdfExtractor {
public PdfExtractor() {
}
public static void main(String args[]) throws Exception
{
FileInputStream in = new FileInputStream ("c:\\a.doc");
WordExtractor extractor = new WordExtractor();
String str = extractor.extractText(in);
System.out.println("the result length is"+str.length());
System.out.println("the result is"+str);
}
}
解决的是导出含有echarts的页面为word文档,需要考虑echarts图表的大小,采用的皮告是设置角度解析器来预设置图片宽高,也考虑到多图导出问题,下面是我的解决过程
建立一个word.js,内容如下
不知道模板文件如何导入或导入错误,JszipUtils.getBinaryContent(fileDocx, function(err, res) {})时,不知道这个fileDocx模板文件放在哪里,然后出现引入燃枯明路径错误
Error: Can't find end of central directory : is this a zip file?
在使用vue-cli2时,我们需要把模板文件放到static目录下
在使用vue-cli3时,我们需要把模板文件放在public目录下
然后当config中的publicPath是'./'时,直接传入文件名就好,如
JszipUtils.getBinaryContent('template.docx', function(err, res) {})
当config中的publicPath是 ‘/’时,则需要../一层层到相应位置,要特别注意省去public目录,如
JszipUtils.getBinaryContent('../../template.docx', function(err, res) {})
我的环境是vue-cli3,然后再public目录下建败缺立word文件夹存放模板文件weektmp.docx
以上就是前端如何做生成word的全部内容,1、使用电脑网页浏览器打开需要操作的网页。2、在网页任意位置点击鼠标右键,选择“网页另存为”。3、根据需要将网页文件保存至电脑指定位置。4、新建一个WORD文档,从WORD文档内打开文件 5、文件类型中选择“所有网页”。6、。