精华内容
下载资源
问答
  • 批量实现word表格合并

    2017-07-07 05:56:16
    如何用程序实现word表格中单元格边框是网格线进行上下单元格合并问题,如图片中将虚线的上下单元格进行合并
  • 如下所示,有两个表格,长宽都一致,如何进行合并? 解决的办法很简单:只要在中间的空行输入del键,删除当前回车即可变成以下所需求的目标。 但是有时候会出现以下情况: 表面看起来好象是一起了,但是仔细看...

    需求

    如下所示,有两个表格,长宽都一致,如何进行合并?
    在这里插入图片描述
    解决的办法很简单:只要在中间的空行输入del键,删除当前回车即可变成以下所需求的目标。
    在这里插入图片描述
    但是有时候会出现以下情况:
    在这里插入图片描述

    表面看起来好象是一起了,但是仔细看其实并没有。一旦有分页,很可能就会变成两表表格,或者发生重叠。

    原因解决办法

    造成问题的原因是因为两张表格的“文字环绕”属性没有设置为“无”。
    在这里插入图片描述
    所以只需将两张表都设置一下,问题解决。

    展开全文
  • 1、word表格的模板 另存为xml格式: 将保存的xml改成.ftl 格式化一下xml,看看文件中的带有是否正确注:有可能出现{}是否正确 注:有可能出现是否正确注:有可能出现{标签。。。再},这种情况复制没有这种情况的...

    1、word表格的模板

    在这里插入图片描述
    另存为xml格式:
    在这里插入图片描述
    将保存的xml改成.ftl
    在这里插入图片描述
    格式化一下xml,看看文件中的带有${}是否正确
    如果出现这种情况,手动修改下(可复制上一个正确的改下名字)
    在这里插入图片描述

    2、Java代码

    1、需要导入freemarker的包

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

    2、代码编写(非循环)

    public void createDoc(Map<String,Object> dataMap,String templateName,String filePath) {
            Configuration configuration = new Configuration();
            configuration.setDefaultEncoding("UTF-8");
            // 设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,
            // 这里我们的模板是放在当前类包下面的template文件夹下
            configuration.setClassForTemplateLoading(this.getClass(),"template");
            // 输出文档路径及名称
            File outFile = new File(filePath);
            Writer out = null;
            try {
                // test.ftl为要装载的模板
                Template t = configuration.getTemplate(templateName);
                //设置模板编码方式
                t.setEncoding("utf-8");
    
                out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"));
                t.process(dataMap, out);
                out.close();
            } catch (Exception e) {
                e.printStackTrace();
            }  finally {
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
    public static void main(String[] args) {
            OaMeetingMinutesServiceImpl service = new OaMeetingMinutesServiceImpl();
            // 要填入模本的数据文件
            Map<String,Object> dataMap = new HashMap<>();
            dataMap.put("week", "周一");
            dataMap.put("name", "张三");
            dataMap.put("date", "6.11");
            dataMap.put("content", "哈师大");
            service.createDoc(dataMap,"test.ftl","D:/test.doc");
            System.out.println("end");
        }
    

    结果:
    在这里插入图片描述

    3、循环导出

    在要循环的列上加上
    在这里插入图片描述
    注意结束标签
    在这里插入图片描述
    数据做相应的修改
    在这里插入图片描述

    测试:

    public static void main(String[] args) {
            OaMeetingMinutesServiceImpl service = new OaMeetingMinutesServiceImpl();
            // 要填入模本的数据文件
            Map<String,Object> dataMap = new HashMap<>();
            List<User> list = new ArrayList<>();
            User user = new User();
            user.setWeek("周一");
            user.setName("张三");
            user.setDate("6.22");
            user.setContent("畜栏里");
            list.add(user);
    
            User user1 = new User();
            user1.setWeek("周二");
            user1.setName("李四");
            user1.setDate("6.23");
            user1.setContent("畜栏d地方里");
            list.add(user1);
    
            dataMap.put("userList", list);
            service.createDoc(dataMap,"test.ftl","D:/test.doc");
            System.out.println("end");
        }
    

    结果:
    在这里插入图片描述

    4、循环导出并合并单元格

    在要合并的一列上加入下面截图中的标签
    在这里插入图片描述
    测试:我这里合并的是星期一列

    xml中的判断:
    在这里插入图片描述

    <w:tcPr>
                                        <w:tcW w:w="2130" w:type="dxa"/>
    									<#if user.strMap.now == "1">
    										<#if user.strMap.pre == "0">
    											<w:vMerge w:val="restart"/>
    										<#else>
    											<w:vMerge/>
    										</#if>
    									<#else>
    										<#if user.strMap.pre != "0">
    											<w:vMerge/>
    										</#if>
    									</#if>
                                    </w:tcPr>
    

    Java代码:

    public static void main(String[] args) {
            OaMeetingMinutesServiceImpl service = new OaMeetingMinutesServiceImpl();
            // 要填入模本的数据文件
            Map<String,Object> dataMap = new HashMap<>();
            List<User> list = new ArrayList<>();
            User user = new User();
            user.setWeek("周一");
            user.setName("张三");
            user.setDate("6.22");
            user.setContent("畜栏里");
            list.add(user);
    
            User user1 = new User();
            user1.setWeek("周一");
            user1.setName("李四");
            user1.setDate("6.23");
            user1.setContent("畜栏d地方里");
            list.add(user1);
    
            User user2 = new User();
            user2.setWeek("周一");
            user2.setName("李四1");
            user2.setDate("6.211");
            user2.setContent("畜栏d地方1里");
            list.add(user2);
    
            User user3 = new User();
            user3.setWeek("周二");
            user3.setName("李四11");
            user3.setDate("6.2111");
            user3.setContent("畜栏d地方11里");
            list.add(user3);
    
            User user4 = new User();
            user4.setWeek("周二");
            user4.setName("李四111");
            user4.setDate("6.21111");
            user4.setContent("畜栏d地方111里");
            list.add(user4);
    
            for(int i =0;i<list.size();i++){
                list.get(i).getStrMap().put("pre","0");
                list.get(i).getStrMap().put("now","0");
                list.get(i).getStrMap().put("next","0");
                if(i<list.size()-1){
                    //当前和下一个相同就合并,将now设置为1
                    if(list.get(i).getWeek().equals(list.get(i+1).getWeek())){
                        list.get(i).getStrMap().put("now","1");
                    }
                }
            }
    
            for(int i=0;i<list.size();i++){
                //保存他的前一个元素是否需要合并
                if(i>0){
                    list.get(i).getStrMap().put("pre",list.get(i-1).getStrMap().get("now"));
                }
                //保存他的后一个元素是否需要合并
                if(i<list.size()-1){
                    list.get(i).getStrMap().put("next",list.get(i+1).getStrMap().get("now"));
                }
            }
    
            dataMap.put("userList", list);
            service.createDoc(dataMap,"test.ftl","D:/test.doc");
            System.out.println("end");
        }
    

    说明:我这里采用了两次循环的方法合并,仅供参考

    测试结果:
    在这里插入图片描述

    展开全文
  • 如图所示,表格第一行的“类别2”到“类别5”这些文字处于顶部,如果想要这些文字像类别1一样垂直居中,可以通过如下方式进行调整: 1.选中需要调整的单元格,右键单击,找到`表格属性`一栏单击,弹出`表格属性`...

    如图所示,表格第一行的“类别2”到“类别5”这些文字处于顶部,如果想要这些文字像类别1一样垂直居中,可以通过如下方式进行调整:

    1.选中需要调整的单元格,右键单击,找到`表格属性`一栏单击,弹出`表格属性`对话框。

    2.在`表格属性`对话框中,点击上方的`单元格`,并在`垂直对齐方式`中选择`居中`,确认修改后即可调整垂直对齐。

    展开全文
  • 1 Maven依赖 com.alibaba easyexcel 2.2.7 cn.hutool hutool-all 5.6.2 2 合并单元格 /** * 合并单元格 * * @param table 表格对象 * @param beginRowIndex 开始行索引 * @param endRowIndex 结束行索引 * ...

    1 Maven依赖

            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>easyexcel</artifactId>
                <version>2.2.7</version>
            </dependency>
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>5.6.2</version>
            </dependency>

    2 合并单元格

        /**
         * 合并单元格
         *
         * @param table         表格对象
         * @param beginRowIndex 开始行索引
         * @param endRowIndex   结束行索引
         * @param colIndex      合并列索引
         */
        public static void mergeCell(XWPFTable table, int beginRowIndex, int endRowIndex, int colIndex) {
            if (beginRowIndex == endRowIndex || beginRowIndex > endRowIndex) {
                return;
            }
            //合并行单元格的第一个单元格
            CTVMerge startMerge = CTVMerge.Factory.newInstance();
            startMerge.setVal(STMerge.RESTART);
            //合并行单元格的第一个单元格之后的单元格
            CTVMerge endMerge = CTVMerge.Factory.newInstance();
            endMerge.setVal(STMerge.CONTINUE);
            table.getRow(beginRowIndex).getCell(colIndex).getCTTc().getTcPr().setVMerge(startMerge);
            for (int i = beginRowIndex + 1; i <= endRowIndex; i++) {
                table.getRow(i).getCell(colIndex).getCTTc().getTcPr().setVMerge(endMerge);
            }
        }

    3 调试代码

        /**
         * 合并单元格
         *
         * @param response
         */
        @GetMapping("/mergeCell")
        public void mergeCell(HttpServletResponse response) {
            try {
                //读文件
                ClassPathResource cpr = new ClassPathResource("/doc/模板合并单元格.docx");
                XWPFDocument document = new XWPFDocument(cpr.getInputStream());
                mergeCell(document.getTableArray(0), 1, 2, 0);
                //返回流
                response.setHeader("content-type", "application/octet-stream");
                response.setContentType("application/octet-stream;charset=UTF-8");
                response.setHeader("Content-Disposition", "attachment; filename=" + new String("模板.docx".getBytes("utf-8"), "ISO-8859-1"));
                OutputStream outputStream = response.getOutputStream();
                document.write(outputStream);
                outputStream.flush();
                outputStream.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    4 模板文件

    模板路径:

    模板内容:

    5 调试结果

    展开全文
  • word表格中文字如何设置左右和上下居中(水平和垂直居中)时间:06-25作者:snow来源:互联网想使表格中的文字居中,现文字在表格的下方,点单元格属性的垂直居中按钮也不行,文字反倒更靠下了该怎么办?可能是单元格高度...
  • 通过对word表格添加题注,位置设为表格上方,编辑题注内容再将字体居中设置就可以实现在word表格上方加标题。具体操作请参照以下步骤。1、新建一个word文档,建立一个几行几列的表格。具体尺寸可根据个人需求建立,...
  • 点击上方蓝字关注我们,更多惊喜等着你讲解视频1:页面布局、“插入”选项卡讲解视频2:表格部分考点梳理一、“设计”选项卡在Word2016中,将传统的“页面布局”选项卡分为了“设计”和“布局”两个选项卡。...
  • 如下图:一个table表格,需要作为表格插入到word中;1、首先对表格做拆分处理代码如下: privateStringsimplifyTable(StringtableContent){ if(StringUtils.isEmpty(tableContent))returnnull; ...
  • PHPWord小记之表格居中和合并单元格

    千次阅读 2012-10-10 10:12:08
    和上篇一样,文章基于PHPword...1、表格对齐和表格缩进 /PHPWord/Style/TableFull.php添加相关属性和方法 // 表格居中属性,用法:表格style数组中:'alignMent' => 'center' private $_alignMent = null; // 表
  • NPOI word 合并单元格,合并一个区域

    千次阅读 2019-02-19 11:22:18
    NPOI word 中的单元格合并。网上有不少教程将单元格合并的,但是基本都是在创建的单元的时候就开始合并了。 现在我们来看下,如何在创建好的表格上再做合并动作。 NPOI 的XWPFTable的row提供了MergeCells这个功能...
  • C# 操作现有Word表格详细教程

    万次阅读 2017-10-31 22:46:12
    Word中,我们可以给一个表格设置格式(如设置样式,设置边框,设置单元格背景色),添加或删除行、列,设置行高和列宽,合并和拆分单元格,插入图片等,也可以删除该表格。在这篇文章中我将介绍如何使用C#来实现...
  • 对已经生成的word进行处理,要对表格中的行、列进行合并。 参考:...
  • 因为工作任务填充word的模板,之前用的最多的是excel。 第一次操作word,面向百度开发,遇到了很多问题,也找了很多bolg。 百度有很多标题与内容不符的blog, 找的有点心累,现在做一个总结。 版本:5.0.0 在线Api: ...
  • 单元格是组成表格的基本单位,一个表格是由n个单元格堆叠而成的。 例子:下面表格是由8个单元格组成 练习:以下表格分别由多少个单元格组成? 2.表格中的行 在表格范围内,横向的叫行。 例子:下列表格有两行 ...
  • Word表格处理技巧

    千次阅读 2009-05-05 05:56:00
    1 文字巧妙转换成表格通常大家制作表格时,都是采用表格和边框工具...具体方法是这样:(1)按照自己的计划先将表格中的各项内容输入Word文件中,在这需注意的是,一定要利用一种特别的分隔符隔开准备产生表格列线的文
  • 表格开始标志 &lt;w:tblPr&gt;表格属性 &lt;w:tblW w:w="0" w:type="auto"/&gt;这个type=还可以使用“pct”根据窗口调整 &lt;w:jc w:val="center"/&gt;...
  • poi版本选3.10以上的 要不然插入图片 word会打不开 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.11</version&...
  • 前面介绍了准考证的制作(利用word邮件合并批量制作准考证)。这里再把座位贴制作方法介绍下。先看一下成品效果。这里我以标准考试一个考场30人的座位贴。座位贴制作第一:还是要有个清晰的思路。座位贴的大小(如上图...
  • 利用Latex在线表格绘制表格以及多行合并垂直居中 之前用latex绘制表格时都是直接写程序,但是对于复杂的表格,自己设计程序以及书写程序时非常麻烦,在用latex写论文时表格的绘制就花费了非常多的时间,要是绘制的...
  • poi导出word表格的问题

    千次阅读 2015-05-08 09:15:06
    poi导出word的问题
  • Word中的表格制作功能制作表格是相当方便的,那么怎么样才能把做好的表格一分为二呢? 首先,将光标定位到要分开的表格的某一行上,然后按下“Ctrl+Shift+Enter”组合键。这时,表格的中间就自动地为你插入了一个...
  • 1. EXCEL如何将上下两小格合并为一格可以通过设置单元格格式的命令进行合并,具体操作步骤如下:工具/原材料excel2019版、电脑。1、打开电脑找到并点击excel2019版新建工作copy表软件;2、双击excel2019版新建工作表...
  • 5、保留表格上下框线,接下来,做表头; 6、选中表格第一行,右击选择“表格属性”——>选择“边框和底纹”; 7、选择下框线,在选择应用于“单元格”,这样,三线表基本完成了,还差最后一步,设置...
  • 一、先说 单元格上下合并,行循环,在需要开始合并的地方给&lt;w:vmerge w:val="restart" /&gt;,在需要结束合并的地方给&lt;w:vmerge /&gt;,我这里实在java中判断的是否需要合并,ftl...
  • 大体是这样的表格显示(还有几个更简单的表格不在此列出),其中中间g1-gn是根据添加页面设置的组别数进行动态显示的,如果当前有8组中央段面积,那么就是g1-g8,如果有两组数据(这里是数据2组,不是中央段面积2组...
  • 文本转表格:步骤1:选中要转换成表格的文本步骤2:单击“插入”选项卡→“表格”组中的“表格”下拉按钮,然后在列表中选择“文字转换成表格”步骤3:在打开的“将文字转换成表格”对话框中,在文字分隔位置选择...
  • 项目中经常会使用到 导出 功能,有导出 Word,有导出 Excel的,本文主要记录导出稍微复杂点的Excel表,涉及表头中三级目录、框中画对角线、列分级合并合并后单元格增加边框等

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,276
精华内容 1,710
关键字:

word表格上下合并