精华内容
下载资源
问答
  • java word 导出功能

    2018-07-19 14:59:54
    java word导出java word导出java word导出java word导出java word导出
  • AsposeWord导出word表格,简单封装成了AsposeWordHelper,开发工具:vs2015
  • PowerDesigner导出word文件,Word导出通用模板,可修改。
  • poi 导出 word 导出excel

    2015-03-11 10:59:09
    亲测 poi 导出word 导出excel项目 导入 myeclipse 可运行
  • POI报表Word导出

    2017-02-06 14:31:07
    POI报表Word导出
  • word导出PDF文件升级包

    2020-06-23 10:15:51
    word导出PDF文件升级包,
  • PowerDesigner标准的常用Word导出模板,涵盖PDM模型关系图、数据库表清单,列清单,Key清单,Index索引清单,数据库表结构,以及建表语句等。
  • word导出工具(java)

    2018-05-18 11:15:59
    java的word导出工具类,支持2007版word的模板导出,可导出文字、图片等
  • freemarker-2.3.30模板word导出 包含java代码 jar包和操作说明
  • ExportWorkdModel word导出功能
  • txtExport word导出txt文件
  • C#word导出

    2012-04-10 11:46:34
    vs2003的word导出,简单方便,没有用到什么复杂的东西
  • itext导出word导出

    2013-08-08 12:29:11
    itext 导出word 全部 用法,归纳总结了常用例子好好学习吧
  • Java实现word导出与pdf导出

    千次阅读 2019-03-04 08:58:06
    大部分都是用itext来实现,这次word导出我是用freemarker来实现,麻烦点,需要将其文档改成xml然后在改成ftl文件。如果不懂ftl文件语法请去看freemarker语法。这里就不再说了。程序用的是maven ,导入freemarkerjar包...

    实现PDF 导出

    大部分都是用itext来实现,这次word导出我是用freemarker来实现,麻烦点,需要将其文档改成xml然后在改成ftl文件。如果不懂ftl文件语法请去看freemarker语法。这里就不再说了。程序用的是maven  ,导入freemarkerjar包

    <dependency>
       <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
       <version>2.3.20</version>
    </dependency>

    1、ftl文件是放在了webapp下的WEB-INF/views/ftl下

    2、图片是存放在webapp下的images中

    3、路径是为了方便找文件图片。为什么没有放在views下?是因为有在做pdf时需要用到这里的链接访问图片,因为程序是web端的,路径直接获取的绝对路径。

    4、访问程序为

    @RequestMapping(value="download",method={RequestMethod.GET,RequestMethod.POST})
    public void exportWord( HttpServletRequest request, HttpServletResponse response) throws Exception {
    	Map<String,Object>  dateMap=new HashMap<String,Object>();
    	dateMap.put("title","个人简历");
    	dateMap.put("userName","xueyucheng");
    	dateMap.put("userSex","man");
    	dateMap.put("userAge","17");
    	dateMap.put("height","161");
    	dateMap.put("address","handan");
    	dateMap.put("University","ligong");
    	dateMap.put("skill","jineng");
    	dateMap.put("content","asdasasd");
    	String ftlName="test.ftl";
    	String imageName="1.jpg";
    	try {
    		 //这里是获得数据 然后在客户端中实现下载,当然如果指定位置下载也可以实现下面的那个方法
    		 ByteArrayOutputStream bos=    WordUtil.createWord(dateMap, ftlName, request,imageName);/**字节*/
    		 WordUtil.renderWord(response, bos.toByteArray(), "123");
    
        } catch (Exception e) {
    		logger.error("word导出出错......",e);    
    	}
    }

    word导出做成工具类了,直接从工具类中调用

    public class WordUtil {  
    
    /**
         * 根据模板创建word
         * @auther fengruiqi
         * 2017年2月4日  下午10:46:09
         * @param dataMap  需要展示的数据
         * @param templateName  word模板的名称 比如:test.ftl
         * @param imageName 图片的名称
         * 
         */
        public static ByteArrayOutputStream createWord(Map dataMap,String templateName,HttpServletRequest request,String imageName)  throws Exception{
            String basePath = request.getSession().getServletContext().getRealPath("/");//绝对路径  
            //创建配置实例 
            Configuration configuration = new Configuration();
    
            //设置编码
            configuration.setDefaultEncoding("UTF-8");
           try {
    
               //ftl模板文件统一放至 资源文件ftl下面 包下面
               configuration.setDirectoryForTemplateLoading(new File(basePath + "/WEB-INF/views/ftl/"));  
    
               //获取模板 
               Template template = configuration.getTemplate(templateName);
               template.setEncoding("utf-8");
    
               if(imageName!=null && !imageName.equals("")){
                   /** 图片路径 **/
                   String imagePath =basePath+"/images/"+imageName;
                   /** 将图片转化为**/
                   InputStream in = null;
                   byte[] data = null;
                   try {
                       in = new FileInputStream(imagePath);
                       data = new byte[in.available()];
                       in.read(data);
                       in.close();
                   } catch (Exception e) {
                       throw new Exception(e);
                   }finally {
                       if(in != null){
                           in.close();
                       }
                   }
                   /** 进行base64位编码 **/
                   BASE64Encoder encoder = new BASE64Encoder();
                   /** 图片数据       **/
                   dataMap.put("image",encoder.encode(data));
               }
    
           /*    //输出文件
               File outFile = new File(filePath+File.separator+fileName);
    
               //如果输出目标文件夹不存在,则创建
               if (!outFile.getParentFile().exists()){
                   outFile.getParentFile().mkdirs();
               }*/
    
               //将模板和数据模型合并生成文件 
              // Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
               Writer out = new StringWriter();  
               //生成文件
               template.process(dataMap, out);
               String str = out.toString();  
               ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
               //关闭流
               baos.write(str.getBytes());
               out.flush();
               out.close();
               baos.close();
               return baos;
           } catch (Exception e) {
               throw new Exception(e);  
           }
    
       }
        /**
         * 处理包含多个图片的word问题
         * @author  fengruiqi
         * 创建时间 2017年2月6日 下午3:25:59
         * @param dataMap  要插入的数据
         * @param templateName  ftl名字
         * @param request
         * @param imageName  图片组合昵称
         * @return
         * @throws Exception
         */
        public static ByteArrayOutputStream createWordContinManyPicture(Map dataMap,String templateName,HttpServletRequest request,List<String> imageName)  throws Exception{
            String basePath = request.getSession().getServletContext().getRealPath("/");//绝对路径  
            //创建配置实例 
            Configuration configuration = new Configuration();
    
            //设置编码
            configuration.setDefaultEncoding("UTF-8");
           try {
    
               //ftl模板文件统一放至 资源文件ftl下面 包下面
               configuration.setDirectoryForTemplateLoading(new File(basePath + "/WEB-INF/views/ftl/"));  
    
               //获取模板 
               Template template = configuration.getTemplate(templateName);
               template.setEncoding("utf-8");
               for(String image :imageName){
                   if(image!=null && !image.equals("")){
                       /** 图片路径 **/
                       String imagePath =basePath+"/images/"+image;
                       /** 将图片转化为**/
                       InputStream in = null;
                       byte[] data = null;
                       try {
                           in = new FileInputStream(imagePath);
                           data = new byte[in.available()];
                           in.read(data);
                           in.close();
                       } catch (Exception e) {
                           throw new Exception(e);
                       }finally {
                           if(in != null){
                               in.close();
                           }
                       }
                       /** 进行base64位编码 **/
                       BASE64Encoder encoder = new BASE64Encoder();
                       /** 用图片的名称作为存储图片数据的名称   在页面时应该与改名字对应**/
                       if(image.toLowerCase().contains(".jpg") ){
                           image=StringUtils.remove(image, ".jpg");
                           dataMap.put(image,encoder.encode(data));
                       }else if(image.toLowerCase().contains(".png")){
                           image=StringUtils.remove(image, ".png");
                           dataMap.put(image,encoder.encode(data));
                       }
    
                   }
               }
    
    
           /*    //输出文件
               File outFile = new File(filePath+File.separator+fileName);
    
               //如果输出目标文件夹不存在,则创建
               if (!outFile.getParentFile().exists()){
                   outFile.getParentFile().mkdirs();
               }*/
    
               //将模板和数据模型合并生成文件 
              // Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
               Writer out = new StringWriter();  
               //生成文件
               template.process(dataMap, out);
               String str = out.toString();  
               ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
               //关闭流
               baos.write(str.getBytes());
               out.flush();
               out.close();
               baos.close();
               return baos;
           } catch (Exception e) {
               throw new Exception(e);  
           }
        }
    
    
    
        /**
         * 客户端下载word
         * @author  fengruiqi
         * 创建时间 2017年2月5日 上午1:10:38
         * @param response
         * @param bytes
         * @param filename
         */
        public static void renderWord(HttpServletResponse response, final byte[] bytes, final String filename) {  
          /*  initResponseHeader(response, PDF_TYPE);  */
            setFileDownloadHeader(response, filename);  
            if (null != bytes) {  
                try {  
                    response.getOutputStream().write(bytes);  
                    response.getOutputStream().flush();  
                } catch (IOException e) {  
                    throw new IllegalArgumentException(e);  
                }  
            }  
        }  
        /**
         *  设置让浏览器弹出下载对话框的Header
         * @author  fengruiqi
         * 创建时间 2017年2月4日 下午6:58:44
         * @param response
         * @param fileName
         * @param fileType
         */
        public static void setFileDownloadHeader(HttpServletResponse response, String fileName) {  
            try {  
                // 中文文件名支持  
                String encodedfileName = new String(fileName.getBytes("GBK"), "ISO8859-1");   
                response.setContentType("application/msword");
                response.setHeader("Content-Disposition", "attachment; filename=\"" + encodedfileName + "\"");  
            } catch (UnsupportedEncodingException e) {  
            }  
        }  
    }

    上面带多个图片的word导出与导出一个图片的方法其实可以用一个

    只不过前面的需要将其改成list

    当时是没有考虑到多个图片的问题才这样做。多个图片处理用图片的名字生成,图片内容填充到静态模板中。如果有其他好的方法大家一起交流下。在程序中可以指定位置存储或者用浏览器客户端下载保存,看自己的需求了。或者两个方式都可以采用。注意注释的部分。

    word导出的难点可能就是在freemarker那里吧其他文件需求还不清楚。所以就导出功能就先做到这

    更多精彩内容请关注微信公众号:phubing曾

     

     

    (原文出处:https://mp.weixin.qq.com/s/0emk6i43Gja3A3am8DxQeA

     

     

     

     

     

    展开全文
  • c#简单的WORD导出

    2008-11-20 03:26:26
    简单的WORD导出\简单的WORD导出简单的WORD导出
  • 基于XML模板的word导出实例
  • PHPword 导出word设置不同样式

    千次阅读 2019-03-11 09:47:07
    PHPword 导出word设置不同样式 ** 1.先看需求样子: 2.先用composer下载phpword到你的项目中,如果不会可以到网上搜,教程很多; 3. 引入,然后设置下全局字体字号,当然也可以不设置;然后把每个地方的单独样式...

    **

    PHPword 导出word设置不同样式

    **
    1.先看需求样子:
    在这里插入图片描述
    2.先用composer下载phpword到你的项目中,如果不会可以到网上搜,教程很多;
    3.
    在这里插入图片描述
    引入,然后设置下全局字体字号,当然也可以不设置;然后把每个地方的单独样式设置好,留着备用;
    4在这里插入图片描述
    循环输出要导出的内容,重点在“<w:br />”,这是一个换行符,一开始我直接用“/<br//>”,不好用,内容总是被覆盖,就以为addtext这个方法不能像这样并列使用,后来发现原来是导出到word时候,word不识别“/<br //>”这个换行符。

    补充:使用“<w:br />”这个标签只是实现了样子上的分段实际设置的时候你会发现其实整个word还是一个段落,所以在这里补充下真正意义上的分段:

    			$textrun->addText($i.". ".$v['title']."(".$v['laiyuan']." ".$time.")",$titleStyle);
                $textrun->addText("</w:t></w:r></w:p><w:p wsp:rsidR='004C3B63' wsp:rsidRDefault='004C3B63' wsp:rsidP='00302FB9'><w:pPr><w:keepNext w:val='0'/><w:keepLines w:val='0'/><w:pageBreakBefore w:val='0'/><w:widowControl/><w:kinsoku/><w:wordWrap/><w:overflowPunct/><w:topLinePunct w:val='0'/><w:autoSpaceDE/><w:autoSpaceDN/><w:bidi w:val='0'/><w:adjustRightInd/><w:snapToGrid/><w:spacing w:line='360' w:lineRule='auto'/><w:ind w:firstLine='560' w:firstLineChars='200'/><w:textAlignment w:val='auto'/><w:rPr><w:rFonts w:ascii='宋体' w:h-ansi='宋体'/><wx:font wx:val='宋体'/><w:sz w:val='24'/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii='宋体' w:h-ansi='宋体' w:hint='fareast'/><wx:font wx:val='宋体'/><w:sz w:val='24'/></w:rPr><w:t>");
                $textrun->addText($v['remark'],$contentStyle);
                $textrun->addText("</w:t></w:r></w:p><w:p wsp:rsidR='004C3B63' wsp:rsidRDefault='004C3B63' wsp:rsidP='00302FB9'><w:pPr><w:keepNext w:val='0'/><w:keepLines w:val='0'/><w:pageBreakBefore w:val='0'/><w:widowControl/><w:kinsoku/><w:wordWrap/><w:overflowPunct/><w:topLinePunct w:val='0'/><w:autoSpaceDE/><w:autoSpaceDN/><w:bidi w:val='0'/><w:adjustRightInd/><w:snapToGrid/><w:spacing w:line='360' w:lineRule='auto'/><w:ind w:firstLine='560' w:firstLineChars='200'/><w:textAlignment w:val='auto'/><w:rPr><w:rFonts w:ascii='宋体' w:h-ansi='宋体'/><wx:font wx:val='宋体'/><w:sz w:val='24'/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii='宋体' w:h-ansi='宋体' w:hint='fareast'/><wx:font wx:val='宋体'/><w:sz w:val='24'/></w:rPr><w:t>");
                $textrun->addLink($v['url'],$v['url'],$linkStyle);
                $textrun->addText("</w:t></w:r></w:p><w:p wsp:rsidR='004C3B63' wsp:rsidRDefault='004C3B63' wsp:rsidP='00302FB9'><w:pPr><w:keepNext w:val='0'/><w:keepLines w:val='0'/><w:pageBreakBefore w:val='0'/><w:widowControl/><w:kinsoku/><w:wordWrap/><w:overflowPunct/><w:topLinePunct w:val='0'/><w:autoSpaceDE/><w:autoSpaceDN/><w:bidi w:val='0'/><w:adjustRightInd/><w:snapToGrid/><w:spacing w:line='360' w:lineRule='auto'/><w:ind w:firstLine='0' w:firstLineChars='0'/><w:textAlignment w:val='auto'/><w:rPr><w:rFonts w:ascii='宋体' w:h-ansi='宋体'/><wx:font wx:val='宋体'/><w:sz w:val='24'/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:ascii='宋体' w:h-ansi='宋体' w:hint='fareast'/><wx:font wx:val='宋体'/><w:sz w:val='24'/></w:rPr><w:t>");
    
    就是这样手动写入xml格式的代码,如果你想再增加什么样式,就在已有的word上编辑好后转成xml格式的文件然后在用编辑器打开找到相应的代码放入就可以了
    虽然这可能不是一个好方法,但是真的好用。。。emmmmm
    

    再次补充:
    果然经过试验,上面那个手动写入xml代码的方法不是一个好方法,所以又改进了一下

    $section = $objPHPWord->addSection();
            //标题样式
            $titleStyle = [
                'size' => 14,
                'color' => '#000000',
                'bold' => true,
            ];
            //正文样式
            $contentStyle = [
                'size' => 12,
                'color' => '#000000',
            ];
            //链接样式
            $linkStyle = [
                'size' => 12,
                'color' => '#0000ff',
            ];
            //首行缩进段落
            $paragraphStyleFirst = 'pfirstStyle';
            $objPHPWord->addParagraphStyle($paragraphStyleFirst, array('indentation' => array('firstLine' => 460), 'lineHeight' => 1.0, 'spacing' => 120));
            //不缩进段落
            $noParagraphStyleFirst = 'pNofirstStyle';
            $objPHPWord->addParagraphStyle($noParagraphStyleFirst, array('lineHeight' => 1.0, 'spacing' => 120));
            foreach ($data as $k => $v){
                $i = $k + 1;
                $time = date('Y年m月d日',$v['fromtime']);
                if (!empty($v['title'])) $section->addText($i.". ".str_replace(array('<', '>', '&'), array('&lt;', '&gt;', '&amp;'), $v['title'])."(".$v['laiyuan']." ".$time.")",$titleStyle,$noParagraphStyleFirst);
                if (!empty($v['remark'])) $section->addText(str_replace(array('<', '>', '&'), array('&lt;', '&gt;', '&amp;'),$v['remark']),$contentStyle,$paragraphStyleFirst);
                if (!empty($v['url'])){
                    $textrun = $section->addTextRun($paragraphStyleFirst);
                    $textrun->addLink($v['url'],str_replace('&', '&amp;',$v['url']),$linkStyle);
                }
    

    这样就可以了,亲测可以完美下载,然后有需要注意的地方就是替换那块,要把特殊符号替换一下,否则打开的时候会报Xml parsing error 位置:部分:/word.document.xml,
    行:
    *,列:****,其实错误都一样,就是导出内容有特殊符号,记得替换一下就ok了!!

    5
    在这里插入图片描述
    最后导出即可。

    希望对大家有帮助~~

    展开全文
  • word导出实例 用jacob实现 只需要自己写好一个word 并在里面做好要替换的标记 不变形 原样导出
  • C# Word导出 模板循环

    2015-04-23 08:16:30
    数据库中有N个用户,然后需要导出他们的日志。每个用户为一张word导出不同的天数,会有一个模板来控制排版
  • 使用word导出oracle的数据字典,附件中包括使用说明和导出数据字典的word文件。可以在文件中直接链接对应的数据库,根据oracle的表名、注释等到处规范的数据字典。
  • vbs API word导出

    2011-12-20 17:20:45
    visual Basic的脚本语言API 用于word导出的实用工具...
  • java word 导出

    2014-01-29 17:19:57
    用于java word 文档的导出,已有页面和后台操作类,导出word文档在D盘
  • 有这样的需要,客户需要把表单信息导出,上级签字,这个涉及多行记录,需要导出word表格 找了很多方法,没有实现,现在将实现的方法分享出来 只有两个工具类,自带导出测试方法,根据自己需要修改图片和模板路径...
  • **C# aspose.word 导出word文档** 如图: ![图片说明](https://img-ask.csdn.net/upload/201709/14/1505353100_912379.png) 首先说下,我用的是书签插入单元格中,然后替换书签向word里赋值,上图中,单个赋值是...
  • SpringBoot中弄Word导出

    2020-09-05 17:55:30
    前端说嵌套的数组,Word导出没有搞过,哎,只能使用Java搞了。 思路 使用Java早年的模版技术(和jsp是一个意思),来动态生成xml文件来渲染word。 步骤 在Word中调好样式,生成doc文件; 另存为xml文件格式,并直接...

    问题

    前端说嵌套的数组,Word导出没有搞过,哎,只能使用Java搞了。

    思路

    使用Java早年的模版技术(和jsp是一个意思),来动态生成xml文件来渲染word。

    步骤

    1. 在Word中调好样式,生成doc文件;
    2. 另存为xml文件格式,并直接修改xml后缀为ftlh
    3. 获得ftlh格式文件之后,在其中动态数据部分设置好freemarker标签
    4. 然后Java Bean对freemarker进行数据渲染

    通过doc生成ftlh

    选中xml
    准备word样式后,将word另存为xml文件,然后将这个xml文件后缀直接改成ftlh即可。

    Freemarker

    Maven

    
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-freemarker</artifactId>
    		</dependency>
    		
    

    在SpringBoot中引入上述依赖。并将上述生成对ftlh文件,保存Spring默认模版文件夹中,如下图:
    模版文件

    ftlh中使用freemarker标签

    freemarker语法
    具体Freemarker标签语法可以去官网查询。

    Java中使用

    ...
      @Resource private Configuration configuration;
    ...
             
            response.reset();
            // 设置word响应头,解决中文乱码问题
            response.setContentType("application/msword;charset=UTF-8");
            // 文件名
            String modelName = "文件";
            String title =
                    modelName + "(" + new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss").format(new Date()) + ")";
            String fileName = String.format("%s.doc", title);
            // 下载中文乱码问题
            response.setHeader(
                    "content-disposition",
                    "attachment;filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8"));
            response.setBufferSize(1024);
            try (PrintWriter writer = response.getWriter()) {
                HashMap root = new HashMap();
                root.put("resultList", resList);
                Template temp = configuration.getTemplate("xxx.ftlh");
                // 将freemarker生成word写入到响应流中
                temp.process(root, writer);
            } catch (TemplateException e) {
              log.error("导出异常:{}", e);
            }
    

    总结

    希望早日不需要后台搞word导出。

    参考

    展开全文
  • 1、使用freemaker对模板解析填充数据导出word文档的功能 2、实现使用itext对word转pdf功能 3、实现了对pdf加水印功能
  • asp.net word导出

    2009-11-16 19:18:20
    word导出! 很值得下载看看!资源免费,大家分享!!
  • java word导出功能实现

    2017-09-30 11:45:40
    实现java中导出一定模板格式的word文档,支持word2003.
  • word导出图片的几种方式,对不知道如何导出word图片的朋友有帮助
  • word导出页面的时候如何能把生成的图片也导出word里面呢,如果是显示到页面中的话生成的图片是能显示的,但是导入word中的时候就不行了 ![图片说明]...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 66,578
精华内容 26,631
关键字:

word导出