精华内容
下载资源
问答
  • word文档中如何合并节You can use section breaks in Word to apply different layout or formatting for part of your document, page numbers or page number style, headers or footers, etc. If you need to ...
    word文档中如何合并节

    word文档中如何合并节

    00_lead_image_selecting_a_section

    You can use section breaks in Word to apply different layout or formatting for part of your document, page numbers or page number style, headers or footers, etc. If you need to select all the content in a section, there is no shortcut to do this.

    您可以在Word中使用分节符来为文档的一部分,页码或页码样式,页眉或页脚等应用不同的布局或格式。如果您需要选择节中的所有内容,则没有捷径可做这个。

    However, we do have a workaround you can use to select all the content in a single section.

    但是,我们确实有一种解决方法,可用于在一个部分中选择所有内容。

    Place the cursor at the beginning of the section you want to select and press “F8” to turn on Extend Mode. Press “F5” to open the “Find and Replace” dialog box and click the “Go To” tab. Select “Section” in the “Go to what” list.

    将光标放在您要选择的部分的开头,然后按“ F8”打开扩展模式 。 按“ F5”打开“查找和替换”对话框,然后单击“转到”选项卡。 在“转到什么”列表中选择“部分”。

    01_clicking_section

    To select all the content in the current section, click “Next”.

    要选择当前部分中的所有内容,请单击“下一步”。

    NOTE: Do not enter anything in the “Enter section number” edit box.

    注意:请勿在“输入分区号”编辑框中输入任何内容。

    02_clicking_next

    The entire section is selected, but the “Find and Replace” dialog box remains open. Click “Close” to close it.

    整个部分均已选中,但“查找和替换”对话框保持打开状态。 单击“关闭”将其关闭。

    03_section_selected

    This procedure does not work when selecting the last section of a document or selecting an entire document when there is only one section in the document. If you want to select the entire document, simply press “Ctrl + A”.

    当选择文档的最后一个部分或仅在文档中只有一个部分时选择整个文档时,此过程不起作用。 如果要选择整个文档,只需按“ Ctrl + A”。

    翻译自: https://www.howtogeek.com/221094/how-to-select-an-entire-section-in-word/

    word文档中如何合并节

    展开全文
  • 1、“视图”--> 勾选"导航窗格",可以看到右侧出现章节大纲。 2、右键需要复制的章节-->选择标题和内容 ,这样就可以把整个章节的内容复制,如下图所示 ...

    1、“视图”--> 勾选"导航窗格",可以看到右侧出现章节大纲。

    2、右键需要复制的章节-->选择标题和内容 ,这样就可以把整个章节的内容复制,如下图所示

    展开全文
  • 这时候就需要进行翻译了,那么如何翻译整个Word文档,这个技巧你得会。 迅捷PDF转换器https://www.xunjiepdf.com/converter 下面就通过具体的例子教大家如何对整个word文档进行翻译,望能帮助到大家!介于操作的是...

    在办公中需要用到word文档的地方有很多,但是当你在处理word文档时候,发现打开的word文档是英文的该怎么办呢?这时候就需要进行翻译了,那么如何翻译整个Word文档,这个技巧你得会。
    如何翻译整个Word文档,这个技巧你得会

    迅捷PDF转换器https://www.xunjiepdf.com/converter

    下面就通过具体的例子教大家如何对整个word文档进行翻译,望能帮助到大家!
    介于操作的是Word文件,可以选择直接在电脑中打开这份Word文件进入到主页面;通过移动鼠标选择到“审阅”其中就包括了“翻译”功能。
    如何翻译整个Word文档,这个技巧你得会

    选择文档翻译的语言,支持多种语言的翻译;可通过点击联机翻译操作。
    如何翻译整个Word文档,这个技巧你得会
    当然也可以选择第三方翻译工具,进入到工具的操作页面中选择到栏目“特色转换”中 “Word翻译”这个功能完成文件翻译的操作。
    如何翻译整个Word文档,这个技巧你得会
    下一步添加所需要的翻译的Word文件。可以点击右侧的转换框在出现的文件框中找到所要翻译的文件直接拖拽到转换框中即可。
    如何翻译整个Word文档,这个技巧你得会
    然后可以在输出目录这里,可以自己选择文件的保存路径,移动鼠标【输出目录——浏览处】。下方可以设置到转换的语言。操作如图所示:
    如何翻译整个Word文档,这个技巧你得会
    最后点击开始转换进入到Word文件翻译的过程,可能需要大家等候几秒中。点击到状态栏后面的“打开”就可以查看到翻译后的Word文件的内容了。
    如何翻译整个Word文档,这个技巧你得会

    转载于:https://blog.51cto.com/14035602/2374191

    展开全文
  • Springboot 项目freemarker导出word文档(文档内容包括数据以及服务器图片) 前些天有需求要完成导出word文档功能,基础数据导出word文档,网上也能搜到很多源代码,但是我这边要求是服务器上的图片(只给出服务器图片...

    Springboot 项目freemarker导出word文档(文档内容包括数据以及服务器图片)

    前些天有需求要完成导出word文档功能,基础数据导出word文档,网上也能搜到很多源代码,但是我这边要求是服务器上的图片(只给出服务器图片路径,从服务器得到图片),前前后后加起来就不好内容了,网上并没有找到处理这种的代码和解决方式,只好自己写了,弄完了来记录下,防止以后再用.

    首先动手之前整理下思路:

    第一: 分析下word文档内容: 数据 + 图片
    1. 数据 ——— 数据库获取
    2. 图片 ——— 拿到数据库连接地址,获取服务器图片.(重点)
    第二:分析下实现思路
    1. 数据部分很好处理,后面代码上直接可以一步完成
    2. 图片部分需要注意一下
           2.1.获取数据库图片链接(这个简单跟数据一样处理)
           2.2.根据链接从服务器获取图片并保存到本地
               2.2.1.注意:数据库得到的图片链接,要想从服务器获取,有的字符是需要转义的,这个需要操作的
           2.3.读取本地的图片,将图片信息转为base64,存入跟普通数据一起的实体类中
           2.4.将这个实体类导出到指定的word模板中
    

    上述仅仅为简单分析,实际的编写过程中肯定会遇到很多需要额外操作的内容,后面为大家分析.
    那么现在就开始编写代码吧:

    我们用到的技术为freemarker,其实有好多导出文档的技术,这边就不多说了.
    第一步:添加pom.xml 我们所需要的依赖,这边我就把我差不多要用的拿出来了,代码太多了就不全粘了.
    当然重点就是freemarker.

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.16.16</version>
                <scope>provided</scope>
            </dependency>
    
            <!-- JSONObject对象依赖的jar包 -->
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.9.3</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>3.2.1</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.1.1</version>
            </dependency>
            <dependency>
                <groupId>net.sf.ezmorph</groupId>
                <artifactId>ezmorph</artifactId>
                <version>1.0.6</version>
            </dependency>
            <dependency>
                <groupId>net.sf.json-lib</groupId>
                <artifactId>json-lib</artifactId>
                <version>2.2.3</version>
                <classifier>jdk15</classifier><!-- 指定jdk版本 -->
            </dependency>
            <!-- Json依赖架包下载 -->
    
            <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.8.5</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.5</version>
            </dependency>
            <!--mybatis-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>1.2.47</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-support</artifactId>
                <version>2.1.9</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
            <groupId>org.freemarker</groupId>
                <artifactId>freemarker</artifactId>
                <version>2.3.23</version>
             </dependency>
        </dependencies>

    首先我们需要数据,也就是从数据库里面获取到的数据,这个我就不写了,就是简单的从数据库获取数据而已,数据的格式为List< Map< String,Object>> resList 集合.

    现在就相当于我们已经有数据了,它就是resList,里面有很多字段信息,包括图片的链接(我这边就先给出两个图片字段 jjyp,yjtp链接吧),http://192.168.0.101:1110/GPRS/Ⅰ临无40 (1).jpg ,http://192.168.0.101:1110/GPRS/Ⅰ临无40 (2).jpg (虚拟链接).

    拿到了图片的链接地址,我们就要从服务器获取图片了,并且将它保存到本地 .但是呢再次之前我们还要做的就是图片链接转码,可以直接访问图片链接,地址栏上面的链接就是转码之后的链接(浏览器自动转码),但是代码里面并不会自动转的,所以这里我们要手动转下码才行:

    public class CnToEncode {
        /**
         * @author 一只会飞的猪
         * 将字符串中的中文进行编码
         * @param s
         * @return 返回字符串中汉字编码后的字符串
         */
        public String charToEncode(String s) throws UnsupportedEncodingException {
            char[] ch = s.toCharArray();
                    String result = "";
            for(int i=0;i<ch.length;i++){
                char temp = ch[i];
                if(isChinese(temp)){
                    try {
                        // 遇到中文给中文转码
                        String encode = URLEncoder.encode(String.valueOf(temp), "utf-8");
                        result = result + encode;
                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }
                }else{
                    // 判断是不是空格,是空格时转为 %20
                    if(temp==' '){
                        result = result + "%20";
                    }else{
                        // 判断字符是否为全角字符
                        if((int)temp>255){
                            String encode = URLEncoder.encode(String.valueOf(temp), "utf-8");
                            result = result + encode;
                        }else {
                            result = result + temp;
                        }
                    }
                }
            }
            return result;
        }
        /**
         * 判断字符是否为汉字
         * @param c
         * @return
         */
        private  boolean isChinese(char c) {
            Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
            if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
                    || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B
                    || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
                    || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) {
                return true;
            }
            return false;
        }
        }

    上面是我写好的方法,可以直接拿来用的.转码之后,你的图片链接就可以在代码里面访问服务器图片了,下面就来写访问服务器图片并返回图片输入流:

      public static InputStream getUrlImages(String imagesurl) throws UnsupportedEncodingException {
                 InputStream inputStream = null;
                 HttpURLConnection httpURLConnection = null;
                 try {
                     URL url = new URL(imagesurl);
                     if (url != null) {
                         httpURLConnection = (HttpURLConnection) url.openConnection();
                         httpURLConnection.setConnectTimeout(9000);
                         httpURLConnection.setRequestMethod("GET");
                         int responseCode = httpURLConnection.getResponseCode();
                         if (responseCode == 200) {
                             inputStream = httpURLConnection.getInputStream();
                         }
                     }
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
                 return inputStream;
             }

    然后保存到本地:

     // 将服务器图片保存到本地  输入流---->转为输出流写到文件中
               public void  ImageSaveLocal(String imagepath,String imagename,String imageurl) throws UnsupportedEncodingException {
                   CnToEncode cntoencode = new CnToEncode();
                   String imagesurl=cntoencode.charToEncode(imageurl);
                   int len = 0;
                   FileOutputStream fileOutputStream = null;
                   InputStream inputStream = getUrlImages(imagesurl);      // 得到服务器图片的输入流
                   // 创建文件夹
                   File file = new File(imagepath);
                   if (file.exists()) {
                       if (!file.isDirectory()) {
                           file.mkdir();
                       }
                   } else {
                       file.mkdir();
                   }
                   try {
                       byte[] imagesize = new byte[inputStream.available()];    // 图片长度缓存数组
                       fileOutputStream = new FileOutputStream(imagepath + "/" + imagename);   // 将要写入的图片地址
                       while ((len = inputStream.read(imagesize)) != -1) {
                           fileOutputStream.write(imagesize, 0, len);          // 写入图片
                       }
                   } catch (IOException e) {
                       e.printStackTrace();
                   } finally {
                       try {
                           // 关闭流
                           fileOutputStream.close();
                           inputStream.close();
                       } catch (IOException e) {
                           e.printStackTrace();
                       }
                   }
               }

    我这边对文件夹的做了一个分类,有需要的可以看下,是按照图片链接的类别分的,比如gps是一类.
    这里写图片描述

    既然图片已经保存到了本地了,那么接下来就要读取本地的图片信息了.

      // 图片数据转Base64字节码 字符串
      // imgFile是上面存到本地的图片路径
              public String getImageStr(String imgFile){
                  InputStream in=null;
                  byte[] data=null;
                  try {
                      in=new FileInputStream(imgFile);
                      data=new byte[in.available()];
                      in.read(data);
                      in.close();
                  } catch (FileNotFoundException e) {
                      e.printStackTrace();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
                  BASE64Encoder encoder=new BASE64Encoder();
                  return encoder.encode(data);
              }
    整理下思路我们做了什么.
         上面的各种方法让我们能够将服务器上面的图片存到本地,然后得到图片的base64字节码,图片的base64字节码是可以到处 
      word的也是能够显示的,咦~那我们是不是就可以到处了呢?nonono 现在还差一步,那就是把普通的数据和你处理之后的 图片 
      base64数据重新封装到一个Map集合中,这样一来,原数据集合中的图片数据就是我们所需要的base64字节码了啊,这样就能
      完整的导出啦.
    

    那现在我们在整个用来封装的方法:

    // 参数介绍:jsondata 这个参数是json字符串是你的图片字段名,没有这个系统是不会知道你哪些字段是图片的.
    //         map: 这个当然就是我们的数据了,包括了图片字段数据哦,后面给它替换了就行了
               starturl: 这个是服务器图片前缀,这你们根据需要而定
               imagespath:图片临时保存地址,也就是我门本地的图片地址了
      public Map<String,Object> JsonToMap(String jsondata,Map<String,Object> map,String starturl,String imagepath) throws UnsupportedEncodingException {
                   // starturl="http://101.37.20.41:9004/";
                    Map<String,Object> resmap = new HashMap<>();
                 // 解析json字符串
                    JSONObject jsonObject = JSONObject.fromObject(jsondata);
                    resmap = jsonObject;    // 将图片字段名转为map,后面好使用
                    // 实现源数据的图片数据被base64字节码替换
                    for ( String key : resmap.keySet()) {
                        if ("".equals(map.get(key)) || map.get(key) == null) {
                            String image = getImageStr(imagepath + "/" + "空白.jpg");
                            map.put(key,image);
                        } else {
                            String imageurl = starturl + map.get(key);
                            String imagename = (String) map.get(key);
                            String filetype = imagename.substring(0, imagename.indexOf("/"));   // 截取字段值"/" 之前的字符串作为二级文件夹
                            // 创建本地的二级文件夹
                            File file = new File(imagepath + "/" + filetype);
                            if (file.exists()) {
                                if (!file.isDirectory()) {
                                    file.mkdir();
                                }
                            } else {
                                file.mkdir();
                            }
                            // 拉取服务器图片存入本地
                            ImageSaveLocal(imagepath, imagename, imageurl);
                            // 图片转码
                            String image = getImageStr(imagepath + "/" + imagename);
                            map.put(key, image);
                        }
                    }
                         return map;
                }

    这样以来我们就得到了完美的数据结果了map.

    各位观众!接下来就开始导出word文档了.开始之前我们要制作一个xml文档模板,这个至于怎么做网上有好多教程,当然坑也多.
    那我们就上代码了:

    package com.jshhxx.commontoolsservice.controller;
    import com.jshhxx.commontoolsservice.common.AbstractController;
    import com.jshhxx.commontoolsservice.common.FileToZip;
    import com.jshhxx.commontoolsservice.common.ImagesFileCommon;
    import com.jshhxx.commontoolsservice.common.MapKeyToLowercase;
    import com.jshhxx.commontoolsservice.service.ExportWord.ExportWordService;
    import org.apache.ibatis.annotations.Param;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.*;
    
    import java.io.*;
    import java.util.*;
    
    import static com.jshhxx.commontoolsservice.common.FileToZip.fileToZip;
    
    @RestController
    public class ExportController extends AbstractController {
    
    /**
     * @Autor  一只会飞猪
     * @dis    信息导出word文档
     * @param  wordType  给文档分类 gps/fcb 等
     * @param  reslut    数据
     * @param  wordPath  导出路径
     * @param  wordname  导出名称(单条数据导出命名有效,多条数据导出zip无效)
     * @param  wordfieldname  批量导出名称字段
     * @param  templatename    模板名称
     * @Param  jsondata  图片字段json
     *
     * */
        @Autowired
        private ExportWordService exportWordService;
    
        private static Logger log = LoggerFactory.getLogger(ExportController.class);
    
        @Value("${ToWordPath}")
        private  String ToWordPath;
    
        @Value("${ImagePath}")
        private  String ImagePath;
    
        @PostMapping("/genWord")
        public Map<String,String> genWord(Model model, @RequestBody List<Map<String,Object>> resListone,
                                           @Param("wordType") String wordType,
                                           @Param("wordname") String wordname,
                                           @Param("wordfieldname") String wordfieldname,
                                           @Param("templatename") String templatename,
                                           @Param("jsondata") String jsondata,
                                           @Param("starturl") String starturl
                                            ) throws UnsupportedEncodingException {
            boolean ret = false;
            String msg = null;
            boolean flag=false;
            FileToZip fileToZip = new FileToZip();
            Map<String,String> result=new HashMap<>();
            Map<String,Object>  resMap = new HashMap<>();
            List<Map<String,Object>> resList = new ArrayList<>();
            MapKeyToLowercase mapKeyToLowercase = new MapKeyToLowercase();
            ImagesFileCommon imagesFileCommon = new ImagesFileCommon();
    
            String outputFilePath = ToWordPath;  // 获取程序的当前路径  C:/wordgenerator
            // 创建导出word文档路径  filepath1:文件基础目录路径 C:\wordgenerator,
            //                       filepath2:文件分类路径  C:\wordgenerator\gps
            //                       filepath3:文件最终导出路径 C:\wordgenerator\gps\gps15341394803391208
                String num = String.valueOf((int)(Math.random()*9000+1000));
                String filepath1=outputFilePath;
                String filepath2=filepath1+"/"+wordType;
                String zzfile="/"+wordType+System.currentTimeMillis();
                String filepath3=filepath2+zzfile+num;
            // 创建文件夹
                String wordPath=createfile(filepath1,filepath2,filepath3);
                String resultPath = "/"+wordType+zzfile;
    
            //将map中的key全转为小写,以便模板注入.JsonToMap() 图片数据处理
             for(int j=0;j<resListone.size();j++){
                 resMap=mapKeyToLowercase.transformUpperCase(imagesFileCommon.JsonToMap(jsondata,resListone.get(j),starturl,ImagePath));
                 resList.add(resMap);
             }
    
            // 指定目录下的新建文件夹,针对每次操作都给以唯一的文件夹存放文件
            try {
            // 导出word文档
                if (!resList.isEmpty()) {
                    if(resList.size()==1){
                        Writer out = null;
                        if("".equals(wordname)||wordname==null){
                            wordname = "新建word文档";
                            out = new OutputStreamWriter(new FileOutputStream(wordPath+"/"+wordname+".doc"), "UTF-8");
                            exportWordService.createWord("/",templatename+".xml", resList.get(0), out);
                            result.put("url",resultPath +"/"+ wordname + ".doc");
                        }else{
                            out = new OutputStreamWriter(new FileOutputStream(wordPath+"/"+wordname+".doc"), "UTF-8");
                            exportWordService.createWord("/",templatename+".xml", resList.get(0), out);
                            result.put("url",resultPath +"/"+ wordname + ".doc");
                        }
                        out.close();
                    }else {
                        for (int i = 0; i < resList.size(); i++) {
                            Writer out = null;
                            // 如果有绑定的数据字段则以数据库数据为文件名
                            wordname= (String) resList.get(i).get(wordfieldname);
                            if("".equals(wordname)||wordname==null){
                                wordname = "新建word文档"+(i+1);
                            }
                            try {
                                out = new OutputStreamWriter(new FileOutputStream(wordPath + "/"+wordname + ".doc"), "UTF-8");
                                exportWordService.createWord("/", templatename + ".xml", resList.get(i), out);
                                out.close();
                            } catch (UnsupportedEncodingException
                                    | FileNotFoundException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
    
                        // 打成压缩包
                        // 判断是是否有指定的分类别
                        if(wordType==null||"".equals(wordType)){
                              wordname= String.valueOf(System.currentTimeMillis())+num;
                              flag = fileToZip(ToWordPath, ToWordPath,wordname);
                              result.put("url", "/"+wordname+".zip");
                        }else {
                              wordname= wordType+"_"+String.valueOf(System.currentTimeMillis())+num;
                              flag = fileToZip(wordPath, wordPath,wordname);
                              result.put("url",resultPath +"/"+ wordname + ".zip");
                        }
                        if(flag){
                            log.error("===========================文件打包成功===========================");
                        }else{
                            log.error("===========================文件打包失败===========================");
                        }
                    }
                }
            } catch (Exception e) {
                msg = e.getMessage();
            }
            if((!"".equals(result))||result!=null){
                ret = true;
            }
            return result;
        }
    
        // 创建文件夹存放导出的word文件
        //  filepath1:文件基础目录路径 C:\wordgenerator,
        //  filepath2:文件分类路径     C:\wordgenerator\gps
        //  filepath3:文件最终导出路径 C:\wordgenerator\gps\gps15341394803391208
        public static  String createfile(String filepath1,String filepath2,String filepath3){
            File file1 = new File(filepath1);
            File file2 = new File(filepath2);
            File file3 = new File(filepath3);
    
            System.out.println(filepath3);
            try {
                if (file1.exists()) {
                    if (!file1.isDirectory()) {
                        file1.mkdir();
                        file2.mkdirs();
                        file3.mkdirs();
                    } else {
                        if (!file2.exists()) {
                            if (!file2.isDirectory()) {
                                file2.mkdirs();
                                file3.mkdirs();
                            } else {
                                if (!file3.exists()) {
                                    file3.mkdirs();
                                } else {
                                    if (!file3.isDirectory()) {
                                        file3.mkdirs();
                                    }
                                }
                            }
                        } else {
                            file2.mkdirs();
                            file3.mkdirs();
                        }
                    }
                } else {
                    file1.mkdir();
                    file2.mkdir();
                    file3.mkdir();
                }
            }catch (Exception e){
                log.error("=======================创建文件夹失败!======================");
            }
            return filepath3;
        }
    }
    package com.jshhxx.commontoolsservice.service.ExportWord.Impl;
    
    import com.jshhxx.commontoolsservice.service.ExportWord.ExportWordService;
    import com.jshhxx.commontoolsservice.word.MapperTest;
    import freemarker.template.Configuration;
    import freemarker.template.Template;
    import freemarker.template.TemplateException;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.io.*;
    
    /**
     * @author 一只会飞的猪
     * @dis   查询数据导出word文档
     * */
    
    @Service
    public class ExportWordServiceImpl  implements ExportWordService {
    
        @Autowired
        private MapperTest mapperTestm;
    
        private Configuration configuration =new Configuration();
        // 将数据导入到模板word中,并生成word文档
        public void createWord(String templatePath, String templateName,
                               Object dataMap, Writer out) {
            try {
                Template t = getTemplate(templatePath, templateName);
                t.process(dataMap, out);
                out.close();
            } catch (IOException e) {
                System.out.println(e);
            } catch (TemplateException e) {
                System.out.println(e);
            } finally {
                try {
                    out.close();
                } catch (IOException e) {
                    System.out.println(e);
                }
            }
        }
        // 模板加载
        private Template getTemplate(String templatePath, String templateName)
                throws IOException {
            configuration.setClassForTemplateLoading(this.getClass(), templatePath);
            Template t  = configuration.getTemplate(templateName);
            t.setEncoding("UTF-8");
            return t;
        }
    
    }

    这样一来就大功告成了,后面的代码讲解的比较少,因为网上很多,主要讲的就是这整个功能的开发思路.
    这里写图片描述
    这里写图片描述
    功能是做出来了,但是乱码怎么解决呢?
    告诉你们一个小技巧,部署的时候制定下编码就行了,java -jar Dfile.encoding=utf-8 **

    展开全文
  • 如何将整个word文档存入mysql数据库的指定字段中,Java操作,或者sql操作都可以,想请教一下实在不会了 ![图片说明](https://img-ask.csdn.net/upload/201909/25/1569393023_89640.png) 按照老马的方法我存进取得...
  • 说到编辑文本,大家第一个...不过常在河边走,哪有哪有不湿鞋,相信你肯定遇到过Word文档没有保存就关闭,或者码到一般突然断电、关机、或者是因为其他原因造成的整个Word文档丢失的问题。问题发生了我们就不纠结它是如
  • [经验分享]破解Word中保护文档密码

    万次阅读 2018-05-28 22:08:12
    [经验分享]破解Word中保护文档密码 0X00起因 周五受到一个新的任务,需要对一些表格数据进行汇总, 没想到,最后一个文件中,尽然有文档保护的密码 由于具有黑客天分的我(纯属吹牛哈)对文档进行了简单的弱口令...
  • python读写word、pdf文档

    千次阅读 2018-08-16 15:45:40
    处理PDF和Word文档 用于处理PDF的模块是PyPDF2。 处理Word文档是python-docx模块,要安装python-docx,但是导入模块时是写import docx。 1.从PDF提取文本 import PyPDF2 pdfFileObj = open('meetingminutes.pdf...
  • php解析word,获得文档中的图片

    千次阅读 2018-07-09 15:14:14
    大体思路是先将word中格式为doc的文档转化为docx,用预处理程序将文档中的公式转化为swf图片格式,将word转化为xml格式,在获得xml中的内容转化为json格式。   预备知识 1. 理解xml基础 xml是一种可扩展标记...
  • word文档结构图

    2011-04-08 19:18:00
    使用“文档结构图”可以对整个文档快速进行浏览,同时还能跟踪您在文档中的位置。 在Word文档中设置大纲级别后,即可通过“文档结构图”快速查看Word长文档,操作步骤如下所述: 第1步,打开Word文档窗口,在...
  • QT读取Word文档

    2020-06-08 20:07:34
    Word文档读取 开发工具与关键技术:QtCreator、C++ 作者:何任贤 撰写时间:2020年06月02日 Word文档读取 我们先要在工程文件加入 QT += axcontainer 我们要用到的头文件有 #include #include 读取word文档基本...
  • golang 解析word文档

    万次阅读 2017-12-01 10:25:01
    gooxml是可以对整个office document提供支持的golang库,功能很强大,这里简单给出对word文档的读取案例安装 go get baliance.com/gooxml/ go build -i baliance.com/gooxml/…package mainimport ( "fmt" "log...
  • word文档选择题)转换为excl表格

    千次阅读 2018-12-25 12:21:45
    同事在做一个批量性的工作,就是将word文档中的题目和选项,转移到xml文档中。实例:转: 再网上有很多将各种文档转化的工具和例子,但是很少有将固定格式进行转化的。 因为在这之前也是不明所以,老大直接让写个...
  • PHP生成word文档

    千次阅读 2018-01-06 15:47:31
    ob_start();...这是一个word文档 '; header("Cache-Control: no-store"); //所有缓存机制在整个请求/响应链中必须服从的指令 Header("Content-type: application/octet-stream"); //用于定义网络
  • 我最近喜欢折腾Office软件相关的东西,想把很多Office软件提供的功能用...这篇文章的主要目的是记录如何用C#来实现复制一个Word文档的部分或全部内容到另一个Word文档,废话不多说,下面开始。第一部分:复制部分内容:
  • word文档属性自定义We recently showed you how to set the user information in Word. Word also stores several additional advanced properties related to your documents. Some of these are displayed on the ...
  • C# Aspose.Word 操作word文档【五】

    千次阅读 2017-10-12 13:43:50
    今天给大家介绍下,Aspose.wordword进行创建一行文字(段落)的时候注意事项  string tempFile = Application.StartupPath + "\\resource\\templete\\项目建议书模板.doc"; //这里模板路径 比如:D:\\  ...
  • 要将word文档的每页单独保存为一个word文档,首先需要能够逐页遍历word文档。 逐页遍历word文档可以使用word的定位功能。 代码如下: Sub SplitToOnePage() Const wdNumberOfPagesInDocument = 4 Const ...
  • Google可翻译Word或PDF文档

    万次阅读 2013-10-23 10:57:25
    殊不知,除了在线翻译某段文字或网页,Google还可以直接翻译Word或PDF文档!也就是说,当你输入 Word或PDF文档的URL地址,再点击“翻译”按钮时,Google会先把它转化成HTML文件,然后再进行翻译,不管这个文档是否...
  • C# Aspose.Word 操作word文档【四】

    千次阅读 2017-10-10 10:17:26
    1.今天介绍下第四种word模板写入数据,如图: 2.上图就是今天的模板,接下来就是填充数据了(此方法通用,比 builder.MoveToCell(0, 14 + i, 1, 0);这类方法好)  #region 对表格进行修改  private static...
  • Word产品需求文档,已经过时了

    千次阅读 2017-12-25 10:01:53
    当然,这不是我不用word写需求文档的根本原因。简单来谈一下,为什么软件开发项目中,需要需求文档这么个东西?在稍微大一点的开发团队中,产品经理未必能向所有开发人员,传达具体的产品开发需求
  • Word产品需求文档已经过时了?

    千次阅读 2017-09-20 11:06:56
    说来有些惭愧,写这篇文章是...当然,这不是我不用word写需求文档的根本原因。 简单来谈一下,为什么软件开发项目中,需要需求文档这么个东西? 在稍微大一点的开发团队中,产品经理未必能向所有开发人员,传达具
  • Word 2003 长篇文档排版技巧

    千次阅读 2012-09-03 08:38:11
    简介 市场部经常要出各种分析报告,一写就是洋洋洒洒几...制作目录也是出力不讨好的事,尽管小王知道Word中有插入目录的功能,可是尝试了几次就弃之不用了,原因是系统总是提示有错误。现在只能手工输入目录,加班加点
  • 如何Word、pdf文档制作成翻页电子书 使用友益文书软件9.5.1版可以轻松把图片、pdf、word格式文档制作成翻页电子画册或电子杂志(电脑阅读exe格式或安卓手机apk格式电子书或可微信分享的网站式电子书)。 word文档要...
  • 纯前端导出word文档

    千次阅读 2019-09-29 12:07:05
    实现这个功能时参考了两处文档,但是都有兼容性问题一个是不兼容ie,一个是只能在ie中使用,不过正好互补了,下面是结合两处文档之后的。(摘自想要飞翔的小猪和iteye_10362的博客。) 注意:ActiveXObject是ie特有的...
  • 关于用java编写生成word文档,动态添加数据到word文档的一些心得,经过翻阅了无数的有用的和无用的资料以后,总算找到了一种靠谱的方法1.概述经过反反复复的查阅资料,总算找到了一个靠谱的生成word的方案,这里分享...
  • Word VBA 选取文档中的所有表格

    千次阅读 2016-05-23 20:28:00
    Word VBA 选取文档中的所有表格 Sub 选取所有表格() ' ' 选取表格 宏 ' Dim T As Table Application.ScreenUpdating = False ActiveDocument.DeleteAllEditableRanges wdEditorEvery...
  • Python操作Word文档,建表

    千次阅读 2019-04-10 16:23:02
    一、使用jinja2模板创建word文档(推荐) 使用这种方法,我们需要一个xml模板,之后将需要插入的数据通过变量传递,就能出色的达到目的,完全不需要考虑word中复杂的格式设置。 1.新建一个word文档,按需要创建...
  • 通过xml生成word文档

    千次阅读 2015-01-20 01:18:53
     使用xml生成word的基本步骤在《使用xslt转化xml数据形成word文档导出.doc》中说明比较清楚了。但是其中的细节并未说到,因此自己折腾了两天总算成功了。以下是我在使用过程中碰到的问题要点: 必须使用word 2003...
  • word文档样式一度让我十分的头疼,在页面上显示的,但是导出后根本不显示,终于招到解决办法了: 就是你要导出的word文档打开,然后点击另存为,文件格式选择html,htm格式文件保存到桌面,然后用记事本,或者...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 87,312
精华内容 34,924
关键字:

word选择整个文档