精华内容
下载资源
问答
  • java生成word文档完美解决方案.
  • JAVA 下载Word文档

    千次阅读 2018-06-03 15:24:00
    最近在做java中页面下载word文档,给大家分享一下。我的环境是MyEclipse10 , JDK1.6 ,Tomcat 6,我这里使用的是FreeMarker。FreeMarker是一个引擎模板。点击了解FreeMarker。好了,废话不多说直接上代码一。首先我们...

    最近在做java中页面下载word文档,给大家分享一下。

    我的环境是MyEclipse10 , JDK1.6 ,Tomcat 6,我这里使用的是FreeMarker。FreeMarker是一个引擎模板。点击了解

    FreeMarker。好了,废话不多说直接上代码


    一。首先我们需要制作一个ftl模板,这样freemarker才能识别模板

            我们新建一个word文档,非常简单的word生成


    然后我们将这个word文档另存为xml格式,然后我们用notepad++ 或者其他编辑器打开它



    这里使用notepad++ 打开。格式是不存在的我们需要调一下他的格式


    们需要通过Plugin Manager进行安装插件。更郁闷的是7.5版本之后notepad++就不带Plugin Manager这一功能了。

    当然我么可以通过https://blog.csdn.net/yuan_ren_sheng/article/details/80555430 这里进行下载安装,这里不再阐述


    下载好以后我们点击Show Plugin Manager 找到xml Tools进行安装。安装好


    通过这里Pretty开头的,我们把xml文件全选。然后随便点Pretty开头的方法。有的人notepad++上面没有XML Tools

    格式调好了,然后把他转换成ftl结尾


    写一个工具类

    package utils;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.Writer;
    import java.util.HashMap;
    import java.util.Map;
    
    import freemarker.template.Configuration;  
    import freemarker.template.Template;
    @SuppressWarnings("deprecation")  
    public class DownUtil {
    	 	private static Configuration configuration = null;
    	    private static HashMap<String, Template> allTemplates = null;
    	  
    	    static {  
    	        configuration = new Configuration();  
    	        configuration.setDefaultEncoding("utf-8");  
    	        configuration.setClassForTemplateLoading(DownUtil.class,"/ftl/");  
    	        /*  
    	         * allTemplates = new HashMap<>(); // Java 7 钻石语法  
    	         */  
    	        allTemplates = new HashMap<String, Template>();  
    	        try {  
    	            allTemplates.put("resume", configuration.getTemplate("word3.ftl"));  
    	        } catch (IOException e) {  
    	            e.printStackTrace();  
    	            throw new RuntimeException(e);  
    	        }  
    	    }  
    	  
    	    private DownUtil() {  
    	        throw new AssertionError();  
    	    }  
    	  
    	    public static File createDoc(Map<?, ?> dataMap, String type) {  
    	        String name = "temp" + (int) (Math.random() * 100000) + ".doc";  
    	        File f = new File(name);  
    	        Template t = allTemplates.get(type);  
    	        try {  
    	            // 这个地方不能使用FileWriter因为需要指定编码类型否则生成的Word文档会因为有无法识别的编码而无法打开  
    	            Writer w = new OutputStreamWriter(new FileOutputStream(f), "utf-8");  
    	            t.process(dataMap, w);  
    	            w.close();  
    	        } catch (Exception ex) {  
    	            ex.printStackTrace();  
    	            throw new RuntimeException(ex);  
    	        }  
    	        return f;  
    	    }  
    }

    web.xml

        
        <servlet>
            <servlet-name>HelloWorld</servlet-name>
            <servlet-class>servlet.download</servlet-class>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>HelloWorld</servlet-name>
            <url-pattern>/HelloWorld</url-pattern>
        </servlet-mapping>
    
    

    这里直接访问HelloWorld让他触发浏览器下载引擎。

    Servlet层

    package servlet;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import utils.DownUtil;
    
    
    public class download extends HttpServlet {
    	
    	@Override
    	protected void service(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    		req.setCharacterEncoding("utf-8");  
            Map<String, Object> map = new HashMap<String, Object>();  
    /*      Enumeration<String> paramNames = req.getParameterNames();  
            // 通过循环将表单参数放入键值对映射中  
            while (paramNames.hasMoreElements()) {  
                String key = paramNames.nextElement();  
                String value = req.getParameter(key);  
                map.put(key, value);  
            }*/  
            map.put("topic", "我是标题");  
            map.put("module", "我是模块");  
            // 提示:在调用工具类生成Word文档之前应当检查所有字段是否完整  
            // 否则Freemarker的模板殷勤在处理时可能会因为找不到值而报错 这里暂时忽略这个步骤了  
            File file = null;  
            InputStream fin = null;  
            ServletOutputStream out = null;  
            try {  
                // 调用工具类WordGenerator的createDoc方法生成Word文档  
                file = DownUtil.createDoc(map, "resume");  
                fin = new FileInputStream(file);  
      
                resp.setCharacterEncoding("utf-8");  
                resp.setContentType("application/msword");  
                // 设置浏览器以下载的方式处理该文件默认名为resume.doc  
                resp.addHeader("Content-Disposition","attachment;filename=resume.doc");  
      
                out = resp.getOutputStream();  
                byte[] buffer = new byte[512]; // 缓冲区  
                int bytesToRead = -1;  
                // 通过循环将读入的Word文件的内容输出到浏览器中  
                while ((bytesToRead = fin.read(buffer)) != -1) {  
                    out.write(buffer, 0, bytesToRead);  
                }  
            } finally {  
                if (fin != null)  
                    fin.close();  
                if (out != null)  
                    out.close();  
                if (file != null)  
                    file.delete(); // 删除临时文件  
            }  
    	}
    	
    }
    


    展开全文
  • 这里有两个项目一个是下载的,一个是打开wrod文档的比较简单可以合成使用
  • html生成word文档下载

    千次阅读 2019-04-26 17:23:49
    * @desc生成word文档下载 * @param $content 文档内容 * @param string $fileName 文档名称 */ function downloadWord($content, $fileName='new_file.doc'){ if(empty($content)){ return; } h...
    /**
     * @desc生成word文档并下载
     * @param $content   文档内容
     * @param string $fileName 文档名称
     */
    function downloadWord($content, $fileName='new_file.doc'){
    
        if(empty($content)){
            return;
        }
    
        header("Cache-Control: no-cache, must-revalidate");
        header("Pragma: no-cache");
        header("Content-Type: application/octet-stream");
        header("Content-Disposition: attachment; filename=$fileName");
    
        $html = '<html xmlns:v="urn:schemas-microsoft-com:vml"
             xmlns:o="urn:schemas-microsoft-com:office:office"
             xmlns:w="urn:schemas-microsoft-com:office:word" 
             xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" 
             xmlns="http://www.w3.org/TR/REC-html40">';
        $html .= '<head><meta charset="UTF-8" /></head>';
    
        echo $html . '<body>'.$content .'</body></html>';
    
    }
    展开全文
  • word文档查重

    2018-07-23 09:16:57
    支持word文档查重,协助进行各类标书word文件查询重复部分。
  • phpword 利用phpword将信息导出成word文档进行下载

    千次阅读 热门讨论 2018-06-07 10:18:31
    也希望能帮助更多的人~首先下载phpword https://download.csdn.net/download/qq_34285103/10461489放到一个文件下进行引用(vendor)然后选择文件:替换内容:保存word:保存成word其实就是把提前设计好的word中的...
    前几天需要一个功能,就是把填写得信息(文字图片)导出到word,对于我这个小白来说无比的艰难,幸好有前辈得帮助。也希望能帮助更多的人~
    

    首先下载phpword  https://download.csdn.net/download/qq_34285103/10461489

    放到一个文件下进行引用(vendor)


    然后选择文件:


    替换内容:


    保存word:


    保存成word其实就是把提前设计好的word中的内容进行替换,所以格式是这个样子:


    至于图片导出不成功是因为路径的问题,配置的路径我已经在下载得文档中修改好了,如果不可以的话找自己的路径就可以了


    展开全文
  • 使用IText生成PDF和WORD文档

    热门讨论 2013-06-18 08:09:06
    使用IText生成PDF和WORD文档 包括源码和IText所需jar包
  • Java之下载word文档

    千次阅读 2016-07-12 11:02:09
    需求:web页面点击按钮,触发浏览器下载功能,预览或者保存word本地文件。 可预见的问题:java库选择的是freemarker、word基本的模板的制作。 我电脑的环境是tomcat6+jdk1.6+

    需求:web页面点击按钮,触发浏览器下载功能,预览或者保存word本地文件。

    可预见的问题:java库选择的是freemarker、word基本的模板的制作。

    我电脑的环境是tomcat6+jdk1.6+MyEclipse 10 

    第一步:制作简单的ftl模板文件

    新建一个doc文件,如下图所示  在需要进行动态变化和遍历的地方添加变量,如下图所示。

    另存为xml格式的文件。

    使用notepad++或者其他工具打开xml文件,查看生成的模板是否正确。

    $符号和变量名没有被分开算正常。${topic}这几个符号是紧密相连的算正常。如果被分开的话,重新编辑一下,确保如我说的那样,其他变量类同。

    最后将文件保存之后重命名,后缀由xml改为ftl。使得freemarker能识别相应的模板。

    第二步:将ftl文件放入项目中。编写下载word的java代码。

    项目的文件存放位置。

    项目是比较简单的web项目,使用的是Struts2。下面是web.xml中的配置,一切从简。

    只有一个简单的跳转,当链接访问/saveDocServlet的时候请求会进入MyServlet中,进行逻辑处理。

    下面是MyServlet的代码;

    package com.zhutong.servlet;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Enumeration;
    import java.util.HashMap;
    import java.util.Map;
    
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.zhutong.util.WordGenerator;
    
    public class MyServlet extends HttpServlet {
    	@Override
    	protected void service(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    		req.setCharacterEncoding("utf-8");
    		Map<String, Object> map = new HashMap<String, Object>();
    /*		Enumeration<String> paramNames = req.getParameterNames();
    		// 通过循环将表单参数放入键值对映射中
    		while (paramNames.hasMoreElements()) {
    			String key = paramNames.nextElement();
    			String value = req.getParameter(key);
    			map.put(key, value);
    		}*/
    		map.put("topic", "我是标题");
    		map.put("module", "我是模块");
    		// 提示:在调用工具类生成Word文档之前应当检查所有字段是否完整
    		// 否则Freemarker的模板殷勤在处理时可能会因为找不到值而报错 这里暂时忽略这个步骤了
    		File file = null;
    		InputStream fin = null;
    		ServletOutputStream out = null;
    		try {
    			// 调用工具类WordGenerator的createDoc方法生成Word文档
    			file = WordGenerator.createDoc(map, "resume");
    			fin = new FileInputStream(file);
    
    			resp.setCharacterEncoding("utf-8");
    			resp.setContentType("application/msword");
    			// 设置浏览器以下载的方式处理该文件默认名为resume.doc
    			resp.addHeader("Content-Disposition","attachment;filename=resume.doc");
    
    			out = resp.getOutputStream();
    			byte[] buffer = new byte[512]; // 缓冲区
    			int bytesToRead = -1;
    			// 通过循环将读入的Word文件的内容输出到浏览器中
    			while ((bytesToRead = fin.read(buffer)) != -1) {
    				out.write(buffer, 0, bytesToRead);
    			}
    		} finally {
    			if (fin != null)
    				fin.close();
    			if (out != null)
    				out.close();
    			if (file != null)
    				file.delete(); // 删除临时文件
    		}
    	}
    }
    
    map中key值对应ftl模板${topic}中的属性,可以直接取到key值对应的value值。value值可以是写死的,可以是前后台交互的变量,上面代码中注释的是其中一部分,稍加扩展就可以实现。

    上面代码中引用到一个生成word文件的工具类WordGenerator.createDoc(map,"resume")

    下面是工具类的对应的代码:

    package com.zhutong.util;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.Writer;
    import java.util.HashMap;
    import java.util.Map;
    
    import freemarker.template.Configuration;
    import freemarker.template.Template;
    
    @SuppressWarnings("deprecation")
    public class WordGenerator {
    	private static Configuration configuration = null;
    	private static HashMap<String, Template> allTemplates = null;
    
    	static {
    		configuration = new Configuration();
    		configuration.setDefaultEncoding("utf-8");
    		configuration.setClassForTemplateLoading(WordGenerator.class,"/com/zhutong/ftl");
    		/*
    		 * allTemplates = new HashMap<>(); // Java 7 钻石语法
    		 */
    		allTemplates = new HashMap<String, Template>();
    		try {
    			allTemplates.put("resume", configuration.getTemplate("resume.ftl"));
    		} catch (IOException e) {
    			e.printStackTrace();
    			throw new RuntimeException(e);
    		}
    	}
    
    	private WordGenerator() {
    		throw new AssertionError();
    	}
    
    	public static File createDoc(Map<?, ?> dataMap, String type) {
    		String name = "temp" + (int) (Math.random() * 100000) + ".doc";
    		File f = new File(name);
    		Template t = allTemplates.get(type);
    		try {
    			// 这个地方不能使用FileWriter因为需要指定编码类型否则生成的Word文档会因为有无法识别的编码而无法打开
    			Writer w = new OutputStreamWriter(new FileOutputStream(f), "utf-8");
    			t.process(dataMap, w);
    			w.close();
    		} catch (Exception ex) {
    			ex.printStackTrace();
    			throw new RuntimeException(ex);
    		}
    		return f;
    	}
    
    	
    }

    写到这里,后台的代码已经写完了。方便起见,在浏览器中输入*****:**/****/saveDocServlet


    对应生成的结果为:


    展开全文
  • 通过POI和jacob可以实现word文档的在线预览和下载。 首先,引入以下maven依赖。 &lt;dependency&gt; &lt;groupId&gt;org.apache.poi&lt;/groupId&gt; &lt;artifactId&gt;poi&...
  • Vue-纯前端导出word文档

    千次阅读 2019-12-23 10:11:26
    本文将介绍如何在前端纯js实现word文档导出。 docxtemplater docxtemplater 使用 JSON 数据格式作为输入,可以处理docx 和 ppt模板。不像一些其它的工具,比如 docx.js, docx4j, python-docx 等,需要自己编写...
  • java后台利用模板生成Word文档提供前台下载

    万次阅读 多人点赞 2016-11-25 16:26:43
    java后台利用模板生成Word文档提供前台下载,freeMarker思路
  • 如何将一个word文档按页分割成多个word文档,很有参考价值
  • java操作word文档(jacob,poi)

    千次阅读 2019-05-24 16:09:01
    JACOB(java -com bridge)是一个 JAVA到微软的COM接口的桥梁。... 下载地址:http://sourceforge.net/projects/jacob-project/ 其中jacob-1.19-x64.dll 是用于64位机器上的,jacob-1.19-x86.dll用于32位的...
  • 如何免费下载word文档

    千次阅读 2020-06-02 22:06:18
    很多朋友都有过用word写一个东西,自己一个一个的去写,那可能吗,去网上搜,又下载不了,这下子,可愁怀 了吧,这里我告诉你一个最好用的方法去漂文档。 1,找到你需要的文档网址,例如: 只需要在baiduvvv.com加上...
  • Java Web项目中使用Freemarker生成Word文档

    万次阅读 多人点赞 2014-09-21 15:33:20
    Web项目中生成Word文档的操作屡见不鲜,基于Java的解决方案也是很多的,包括使用Jacob、Apache POI、Java2Word、iText等各种方式,其实在从Office 2003开始,就可以将Office文档转换成XML文件,这样只要将需要填入的...
  • java生成word文档

    万次阅读 2019-05-15 10:25:41
    最近工作需要从数据库查询数据,代码生成word文档,便在网上查询了一下办法。之前类似的工作也曾经做过,当时是在word模板中设置标记,在代码中填充标记。当前网络上简便的方法也是类似,word文档不是凭空生成的,...
  • php 导出 并下载word 文档

    千次阅读 2018-06-25 10:36:58
    最近工作需要,要将网页上可以显示的内容,保存到word里,并下载查看。参考了别人的,现在记录一下://首先要添加一个类文件 class word { function start() { ob_start(); echo '&lt;html xmlns:o="...
  • java poi 通过模板生成word文档

    热门讨论 2014-07-22 17:10:34
    java使用poi,根据模板,生成word文档.
  • Java导出Word文档的实现

    万次阅读 多人点赞 2020-10-18 16:17:13
    在日常的开发工作中,我们时常会遇到导出Word文档报表的需求,比如公司的财务报表、医院的患者统计报表、电商平台的销售报表等等。 导出Word方式多种多样,通常有以下几种方式: 1. 使用第三方Java工具类库Hutool...
  • 用我们自己指定的word模板,生成新的word,代码填写内容到新的word中,可以插入图片、插入文件、插入音频、视频,有不懂的可以联系我。运行已编译成功,希望大家学习。
  • PHP读取word文档 导入word文档

    千次阅读 2019-10-26 15:50:48
    PHP读取word文档 导入word文档PHP读取word文档 导入word文档openoffice把word转html用phpquery读取html的内容 PHP读取word文档 导入word文档 用openoffice和phpquery实现word文档的导入 读取word文档数据 前一段时间...
  • C#操作Word文档(根据模板生成文档、替换内容、插入表格等)
  • 经常做Oa系统的人,难免经常遇到word文档处理的问题,现在针对已经存在的word文档,需要添加水印,设置保护信息,防止别人下载后更改文档内容
  • 利用freemarker生成的word文档利用notepad打开是xml格式。而正常的文档格式利用notepad打开是乱码,需要转换。 代码案例: import com.aspose.words.Document; import com.aspose.words.License; import ...
  • js打开word文档,而不是下载

    万次阅读 2017-12-12 16:20:48
    <!DOCTYPE html> <title>Title function openmydoc(path) { var doc = new ActiveXObject("Word.Application");
  • Java使用模板生成Word发给前端下载

    千次阅读 2020-04-13 11:27:38
    Word文档布局更加复杂,字体、排版、字号等等因素不好调整,于是使用模板来生成Word文档,瞬间舒服多了。 1.新建一个Word文档作为模板,需要动态变量的地方用${xxx}进行替代,例如: 在文档中可以根据自己的需求...
  • java生成word的实例 java导出Word文档的实例 项目说明
  • Word文档批量替换工具

    万次阅读 2019-07-01 11:25:01
    日常工作中可能会碰到这样的情况,就是需要批量替换一些文件的内容,如合同、产品说明、ISO认证标准化文档(质量手册、程序文件、管理手册)、项目推广方案等,先做批量替换,再进行修改,可以节省大量时间。...
  • Word类生成word文档(可批量生成)

    热门讨论 2012-05-13 10:42:57
    利用Word类生成word文档,简洁的代码,不一样的效果,可以批量生产word文档
  • Android 使用模板生成Word文档,支持手机直接查看word,很强大、直接拿来用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 398,950
精华内容 159,580
关键字:

word文档下载