精华内容
下载资源
问答
  • 在我们使用Word的时候,总会遇到一些问题,由于种种原因,时候在我们编辑的文档的最后总会有一页空白页,那么我们该如何删除这一页空白页呢?以下的几种方法均可达到目的,删除最后一页空白页。 第一种:把光标...

    在我们使用Word的时候,总会遇到一些问题,由于种种原因,有时候在我们编辑的文档的最后总会有一页空白页,那么我们该如何删除这一页空白页呢?以下的有几种方法均可达到目的,删除最后一页空白页。

    第一种:把光标置于最后一页,持续按删除键,直到光标位于前一页的最后一行,就删掉了最后一页。

    image

    第二种:将光标置于倒数第二页的最后,按键盘上的Delete键或Ctrl+Delete键,就可以删除最后一页了。

    image

    第三种:将光标置于倒数第二页的最后,点击菜单栏字体选项右下角,效果选择隐藏,点击确定,就可以删除最后一页了。

    image

    第四种:菜单栏选择页面布局,点击页边距下拉标志,选择自定义边距,将页边距的上下值调小一点,就可以删除最后一页了。

    image

    image

    第五种:将光标置于倒数第二页的最后,点击菜单栏段落选项右下角,行距选择固定值,设置值为1磅,点击确定,就删掉了最后一页。

    image

    展开全文
  • Word表格占满了一整页,但是下面多了一页空白页,空白页只有一个换行符,直接Delete或者Backspace都不好使,表格缩小一点空白页就没有了,不缩小表格也可以这么做: 1.先隐藏编辑标记 2.选择空白页的换行符,右键...

    Word表格占满了一整页,但是下面多了一页空白页,空白页只有一个换行符,直接Delete或者Backspace都不好使,表格缩小一点空白页就没有了,不缩小表格也可以这么做:
    1.先隐藏编辑标记
    在这里插入图片描述
    2.选择空白页的换行符,右键选择“字体”,把隐藏前面的勾选上即可。如果发现空白页没有消失,可能是没有做第一步,需要隐藏编辑标记。
    在这里插入图片描述
    亲测这样可以去掉由于表格占满或者过长引起的空白页。
    转载请标明本文链接。

    展开全文
  • 如图这是打开了WPS的word文档页面,但是页面的右边有一段空白,这是打开了【审阅-修订-插入与删除】,关掉这个选项后就好了。

    在这里插入图片描述
    如图这是打开了WPS的word文档页面,但是页面的右边有一段空白,这是打开了【审阅-修订-插入与删除】,关掉这个选项后就好了。

    在这里插入图片描述

    展开全文
  • 如果直接把一个表格分成2个,一是可能会影响后面的输出,二是这个表格的表头就不能出现在每一页了(你没听错,我们的甲方就是这么多事情)。 所以我就想到了隐藏左右下边框的办法。 实现效果如图: 也可以把...

    问题

    最近在用EasyPOI的word模板导出功能,遇到了这样的一个需求:在用指令fe:List遍历输出List时,要在中间进行表格的分隔。如果直接把一个表格分成2个,一是可能会影响后面的输出,二是这个表格的表头就不能出现在每一页了(你没听错,我们的甲方就是这么多事情)。
    所以我就想到了隐藏左右下边框的办法。
    实现效果如图:
    这里写图片描述
    也可以把“本部门结束”换成你想要的,但要修改代码中这个地方的判定条件

    解决方法

    我是直接修改了EasyPOI的源代码,因为它不支持在原有的类上直接修改,
    我就将它的代码复制到我的类中,然后进行修改,但这就导致了虽然我只增加了核心代码,但是我要复制它的2~3个类,虽然我把它写了出来,但是还是建议直接下载然后调用
    这3个类的下载地址:建议直接下载调用即可
    https://download.csdn.net/download/qijingpei/10408691

    核心代码

    将ExcelMapParse类复制到我新建的ExcelMapParseTest类,
    在parseNextRowAndAddRow()方法中的第一个for循环的最后加入这段代码

    if(currentRow.getCell(0).getText().equals("本检测室结束")) {
       CTTcBorders tblBorders = currentRow.getCell(0).getCTTc().getTcPr().addNewTcBorders();
       tblBorders.addNewLeft().setVal(STBorder.NIL);
       tblBorders.addNewRight().setVal(STBorder.NIL);
       tblBorders.addNewBottom().setVal(STBorder.NIL);
       //隐藏这一行所有单元格的边框
       for(int i=0; i<currentRow.getTableCells().size(); i++) {
         currentRow.getCell(i).getCTTc().getTcPr().setTcBorders(tblBorders);
       }
    }

    全部代码(建议直接下载上面的类包)

    1. 调用EasyPOI改为调用咱们自己的类
    //XWPFDocument doc = WordExportUtil.exportWord07(baseDir + template.getPath(), map);
    //改成下面这些:
    XWPFDocument doc = new ParseWord07Test().parseWord(baseDir + template.getPath(), map);
    1. ParseWord07Test()类的代码
    
    import static cn.afterturn.easypoi.util.PoiElUtil.EMPTY;
    import static cn.afterturn.easypoi.util.PoiElUtil.END_STR;
    import static cn.afterturn.easypoi.util.PoiElUtil.FOREACH;
    import static cn.afterturn.easypoi.util.PoiElUtil.FOREACH_AND_SHIFT;
    import static cn.afterturn.easypoi.util.PoiElUtil.FOREACH_NOT_CREATE;
    import static cn.afterturn.easypoi.util.PoiElUtil.START_STR;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    
    import org.apache.commons.lang3.StringUtils;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.xwpf.usermodel.XWPFDocument;
    import org.apache.poi.xwpf.usermodel.XWPFFooter;
    import org.apache.poi.xwpf.usermodel.XWPFHeader;
    import org.apache.poi.xwpf.usermodel.XWPFParagraph;
    import org.apache.poi.xwpf.usermodel.XWPFRun;
    import org.apache.poi.xwpf.usermodel.XWPFTable;
    import org.apache.poi.xwpf.usermodel.XWPFTableCell;
    import org.apache.poi.xwpf.usermodel.XWPFTableRow;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcBorders;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.STBorder;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import cn.afterturn.easypoi.cache.WordCache;
    import cn.afterturn.easypoi.entity.ImageEntity;
    import cn.afterturn.easypoi.util.PoiPublicUtil;
    import cn.afterturn.easypoi.word.entity.MyXWPFDocument;
    import cn.afterturn.easypoi.word.entity.params.ExcelListEntity;
    import cn.afterturn.easypoi.word.parse.excel.ExcelEntityParse;
    
    /**
    * 解析07版的Word,替换文字,生成表格,生成图片
    * 
    * @author JueYue
    *  2013-11-16
    * @version 1.0
    */
    @SuppressWarnings({ "unchecked", "rawtypes" })
    public class ParseWord07Test {
    
       private static final Logger LOGGER = LoggerFactory.getLogger(ParseWord07Test.class);
    
       /**
        * 添加图片
        * 
        * @author JueYue
        *  2013-11-20
        * @param obj
        * @param currentRun
        * @throws Exception
        */
       private void addAnImage(ImageEntity obj, XWPFRun currentRun) throws Exception {
           Object[] isAndType = PoiPublicUtil.getIsAndType(obj);
           String picId;
           try {
               picId = currentRun.getDocument().addPictureData((byte[]) isAndType[0],
                   (Integer) isAndType[1]);
               ((MyXWPFDocument) currentRun.getDocument()).createPicture(currentRun,
                   picId, currentRun.getDocument()
                       .getNextPicNameNumber((Integer) isAndType[1]),
                   obj.getWidth(), obj.getHeight());
    
           } catch (Exception e) {
               LOGGER.error(e.getMessage(), e);
           }
    
       }
    
       /**
        * 根据条件改变值
        * 
        * @param map
        * @author JueYue
        *  2013-11-16
        */
       private void changeValues(XWPFParagraph paragraph, XWPFRun currentRun, String currentText,
                                 List<Integer> runIndex, Map<String, Object> map) throws Exception {
           Object obj = PoiPublicUtil.getRealValue(currentText, map);
           if (obj instanceof ImageEntity) {// 如果是图片就设置为图片
               currentRun.setText("", 0);
               addAnImage((ImageEntity) obj, currentRun);
           } else {
               //功能:隐藏某一行(非fe:list循环遍历出来的行)的左边框和右边框
    //         if(obj.toString().equals("本检测室结束")) {//移除左右边框,这样看起来像是分割了一个表格
    //             CTTcBorders tblBorders = cell.getCTTc().getTcPr().addNewTcBorders();
    //               tblBorders.addNewLeft().setVal(STBorder.NIL);
    //               tblBorders.addNewRight().setVal(STBorder.NIL);
    //               XWPFTableRow currentRow = cell.getTableRow();
    //               currentRow.getCell(0).getCTTc().getTcPr().setTcBorders(tblBorders);
    //               for(int i=currentRow.getTableCells().size() -1; i >= 1; i--) {//移除后面的单元格
    //                 currentRow.removeCell(i);
    //               }
    //               System.out.println("cell.getCTTc().getTcPr().isSetTcBorders():" + cell.getCTTc().getTcPr().isSetTcBorders());;
    //         }
               currentText = obj.toString();
               PoiPublicUtil.setWordText(currentRun, currentText);
           }
           for (int k = 0; k < runIndex.size(); k++) {
               paragraph.getRuns().get(runIndex.get(k)).setText("", 0);
           }
           runIndex.clear();
       }
    
       /**
        * 判断是不是迭代输出
        * 
        * @author JueYue
        *  2013-11-18
        * @return
        * @throws Exception
        */
       private Object checkThisTableIsNeedIterator(XWPFTableCell cell,
                                                   Map<String, Object> map) throws Exception {
           String text = cell.getText().trim();
           // 判断是不是迭代输出
           if (text != null && text.contains(FOREACH) && text.startsWith(START_STR)) {
               text = text.replace(FOREACH_NOT_CREATE, EMPTY).replace(FOREACH_AND_SHIFT, EMPTY)
                   .replace(FOREACH, EMPTY).replace(START_STR, EMPTY);
               String[] keys = text.replaceAll("\\s{1,}", " ").trim().split(" ");
               return PoiPublicUtil.getParamsValue(keys[0], map);
           }
           return null;
       }
    
       /**
        * 解析所有的文本
        * 
        * @author JueYue
        *  2013-11-17
        * @param paragraphs
        * @param map
        */
       private void parseAllParagraphic(List<XWPFParagraph> paragraphs,
                                        Map<String, Object> map) throws Exception {
           XWPFParagraph paragraph;
           for (int i = 0; i < paragraphs.size(); i++) {
               paragraph = paragraphs.get(i);
               if (paragraph.getText().indexOf(START_STR) != -1) {
                   parseThisParagraph(paragraph, map);
    //             parseThisParagraph(paragraph, map, cell);
               }
    
           }
    
       }
    
       /**
        * 解析这个段落
        * 
        * @author JueYue
        *  2013-11-16
        * @param paragraph
        * @param map
        */
       private void parseThisParagraph(XWPFParagraph paragraph,
                                       Map<String, Object> map) throws Exception {
           XWPFRun run;
           XWPFRun currentRun = null;// 拿到的第一个run,用来set值,可以保存格式
           String currentText = "";// 存放当前的text
           String text;
           Boolean isfinde = false;// 判断是不是已经遇到{{
           List<Integer> runIndex = new ArrayList<Integer>();// 存储遇到的run,把他们置空
           for (int i = 0; i < paragraph.getRuns().size(); i++) {
               run = paragraph.getRuns().get(i);
               text = run.getText(0);
               if (StringUtils.isEmpty(text)) {
                   continue;
               } // 如果为空或者""这种这继续循环跳过
               if (isfinde) {
                   currentText += text;
                   if (currentText.indexOf(START_STR) == -1) {
                       isfinde = false;
                       runIndex.clear();
                   } else {
                       runIndex.add(i);
                   }
                   if (currentText.indexOf(END_STR) != -1) {
                       changeValues(paragraph, currentRun, currentText, runIndex, map);
    //                 changeValues(paragraph, currentRun, currentText, runIndex, map, cell);
                       currentText = "";
                       isfinde = false;
                   }
               } else if (text.indexOf(START_STR) >= 0) {// 判断是不是开始
                   currentText = text;
                   isfinde = true;
                   currentRun = run;
               } else {
                   currentText = "";
               }
               if (currentText.indexOf(END_STR) != -1) {
                   changeValues(paragraph, currentRun, currentText, runIndex, map);
    //               changeValues(paragraph, currentRun, currentText, runIndex, map, cell);
                   isfinde = false;
               }
           }
    
       }
    
       private void parseThisRow(List<XWPFTableCell> cells, Map<String, Object> map) throws Exception {
           for (XWPFTableCell cell : cells) {
               parseAllParagraphic(cell.getParagraphs(), map);
           }
       }
    
       /**
        * 解析这个表格
        * 
        * @author JueYue
        *  2013-11-17
        * @param table
        * @param map
        */
       private void parseThisTable(XWPFTable table, Map<String, Object> map) throws Exception {
           XWPFTableRow row;
           List<XWPFTableCell> cells;
           Object listobj;
           for (int i = 0; i < table.getNumberOfRows(); i++) {
               row = table.getRow(i);
               cells = row.getTableCells();
               listobj = checkThisTableIsNeedIterator(cells.get(0), map);
               if (listobj == null) {
                   parseThisRow(cells, map);
               } else if (listobj instanceof ExcelListEntity) {
                   new ExcelEntityParse().parseNextRowAndAddRow(table, i, (ExcelListEntity) listobj);
                   i = i + ((ExcelListEntity) listobj).getList().size() - 1;//删除之后要往上挪一行,然后加上跳过新建的行数
               } else {
                   ExcelMapParseTest.parseNextRowAndAddRow(table, i, (List) listobj);
                   i = i + ((List) listobj).size() - 1;//删除之后要往上挪一行,然后加上跳过新建的行数
               }
           }
       }
    
       /**
        * 解析07版的Word并且进行赋值
        * 
        * @author JueYue
        *  2013-11-16
        * @return
        * @throws Exception
        */
       public XWPFDocument parseWord(String url, Map<String, Object> map) throws Exception {
           MyXWPFDocument doc = WordCache.getXWPFDocumen(url);
           parseWordSetValue(doc, map);
           return doc;
       }
    
       /**
        * 解析07版的Word并且进行赋值
        * @throws Exception
        */
       public void parseWord(XWPFDocument document, Map<String, Object> map) throws Exception {
           parseWordSetValue((MyXWPFDocument) document, map);
       }
    
       private void parseWordSetValue(MyXWPFDocument doc, Map<String, Object> map) throws Exception {
           // 第一步解析文档
           parseAllParagraphic(doc.getParagraphs(), map);
           // 第二步解析页眉,页脚
           parseHeaderAndFoot(doc, map);
           // 第三步解析所有表格
           XWPFTable table;
           Iterator<XWPFTable> itTable = doc.getTablesIterator();
           while (itTable.hasNext()) {
               table = itTable.next();
               if (table.getText().indexOf(START_STR) != -1) {
                   parseThisTable(table, map);
               }
           }
    
       }
    
       /**
        * 解析页眉和页脚
        * @param doc
        * @param map
        * @throws Exception
        */
       private void parseHeaderAndFoot(MyXWPFDocument doc, Map<String, Object> map) throws Exception {
           List<XWPFHeader> headerList = doc.getHeaderList();
           for (XWPFHeader xwpfHeader : headerList) {
               for (int i = 0; i < xwpfHeader.getListParagraph().size(); i++) {
    //               parseThisParagraph(xwpfHeader.getListParagraph().get(i), map);
               }
           }
           List<XWPFFooter> footerList = doc.getFooterList();
           for (XWPFFooter xwpfFooter : footerList) {
               for (int i = 0; i < xwpfFooter.getListParagraph().size(); i++) {
    //               parseThisParagraph(xwpfFooter.getListParagraph().get(i), map);
               }
           }
    
       }
    }
    
    
    1. 上面类中用到的ExcelMapParseTest 类也需要我们修改
    
    import com.google.common.collect.Maps;
    
    import org.apache.poi.xwpf.usermodel.XWPFTable;
    import org.apache.poi.xwpf.usermodel.XWPFTableCell;
    import org.apache.poi.xwpf.usermodel.XWPFTableRow;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcBorders;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.STBorder;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    import cn.afterturn.easypoi.entity.ImageEntity;
    import cn.afterturn.easypoi.util.PoiWordStyleUtil;
    
    import static cn.afterturn.easypoi.util.PoiElUtil.EMPTY;
    import static cn.afterturn.easypoi.util.PoiElUtil.END_STR;
    import static cn.afterturn.easypoi.util.PoiElUtil.FOREACH;
    import static cn.afterturn.easypoi.util.PoiElUtil.FOREACH_AND_SHIFT;
    import static cn.afterturn.easypoi.util.PoiElUtil.FOREACH_NOT_CREATE;
    import static cn.afterturn.easypoi.util.PoiElUtil.START_STR;
    import static cn.afterturn.easypoi.util.PoiElUtil.eval;
    
    /**
    * 处理和生成Map 类型的数据变成表格
    * @author JueYue
    *  2014年8月9日 下午10:28:46
    */
    public final class ExcelMapParseTest {
    
       private static final Logger LOGGER = LoggerFactory.getLogger(ExcelMapParseTest.class);
    
       /**
        * 解析参数行,获取参数列表
        *
        * @author JueYue
        *  2013-11-18
        * @param currentRow
        * @return
        */
       private static String[] parseCurrentRowGetParams(XWPFTableRow currentRow) {
           List<XWPFTableCell> cells = currentRow.getTableCells();
           String[] params = new String[cells.size()];
           String text;
           for (int i = 0; i < cells.size(); i++) {
               text = cells.get(i).getText();
               params[i] = text == null ? ""
                       : text.trim().replace(START_STR, EMPTY).replace(END_STR, EMPTY);
           }
           return params;
       }
    
       /**
        * 解析下一行,并且生成更多的行
        * @param table
        * @param index
        * @param list
        */
       public static void parseNextRowAndAddRow(XWPFTable table, int index,
                                                List<Object> list) throws Exception {
           XWPFTableRow currentRow = table.getRow(index);
           String[] params = parseCurrentRowGetParams(currentRow);
           String listname = params[0];
           boolean isCreate = !listname.contains(FOREACH_NOT_CREATE);//!fe下isCreate是false
           listname = listname.replace(FOREACH_NOT_CREATE, EMPTY).replace(FOREACH_AND_SHIFT, EMPTY)
                   .replace(FOREACH, EMPTY).replace(START_STR, EMPTY);
           String[] keys = listname.replaceAll("\\s{1,}", " ").trim().split(" ");
           params[0] = keys[1];
           //保存这一行的样式是-后面好统一设置
           List<XWPFTableCell> tempCellList = new ArrayList<XWPFTableCell>();
           tempCellList.addAll(table.getRow(index).getTableCells());
           int templateInde = index;
           int cellIndex = 0;// 创建完成对象一行好像多了一个cell
           Map<String, Object> tempMap = Maps.newHashMap();
           LOGGER.debug("start for each data list :{}", list.size());
    
           for (Object obj : list) {
    //         currentRow = isCreate ? table.insertNewTableRow(index++) : table.getRow(index++);
                //上面我改为了下面,是为了适应!fe的情况:
               currentRow = isCreate ? table.insertNewTableRow(index++) : table.getRow(index++ + 1);
               tempMap.put("t", obj);
               //尝试用这个来进行合并单元格 
               //currentRow.removeCell(1);
    //           System.out.println("currentRow.getTableCells().size():" + currentRow.getTableCells().size());
               //加了 
               if(currentRow == null) {
                   continue;
               }
               //加了: currentRow!=null可以用来预防行数不够 
               for (cellIndex = 0; currentRow!=null && cellIndex < currentRow.getTableCells().size(); cellIndex++) {
                   String val = eval(params[cellIndex], tempMap).toString();
                   currentRow.getTableCells().get(cellIndex).setText("");
                   PoiWordStyleUtil.copyCellAndSetValue(tempCellList.get(cellIndex),
                           currentRow.getTableCells().get(cellIndex), val);
               }
    
               for (; cellIndex < params.length; cellIndex++) {
                   if (eval(params[cellIndex], tempMap) instanceof ImageEntity) {
                       PoiWordStyleUtilTest.copyCellAndSetValue(tempCellList.get(cellIndex),currentRow.createCell(), 
                               eval(params[cellIndex], tempMap));
                   } else {
                       String val = eval(params[cellIndex], tempMap).toString();
                       PoiWordStyleUtilTest.copyCellAndSetValue(tempCellList.get(cellIndex),
                               currentRow.createCell(), val);
                   }
               }
               if(currentRow.getCell(0).getText().equals("本检测室结束")) {//隐藏这一行的左边框、右边框和下边框
                   CTTcBorders tblBorders = currentRow.getCell(0).getCTTc().getTcPr().addNewTcBorders();
                   tblBorders.addNewLeft().setVal(STBorder.NIL);
                   tblBorders.addNewRight().setVal(STBorder.NIL);
                   tblBorders.addNewBottom().setVal(STBorder.NIL);
                   for(int i=0; i<currentRow.getTableCells().size(); i++) {
                       currentRow.getCell(i).getCTTc().getTcPr().setTcBorders(tblBorders);
                   }
               }
           }
    //       table.removeRow(index);// 移除这一行
           //我自己改写的:本来是:table.removeRow(index);// 移除这一行
           if(!isCreate) {//如果是!fe,即没有创建新的行
               table.removeRow(templateInde);// 移除模板指令这一行 
           } else {
               table.removeRow(index);// 移除这一行
           }
    
       }
    
    }
    
    1. PoiWordStyleUtilTest 类(虽然这个类不是必须的,但这个修改过的类能让word遍历List能导出图片。如果不需要这个功能的话,可以把上各类中调用此PoiWordStyleUtilTest 类的地方,还是直接调用原来的EasyPOI的类)
    
    import org.apache.poi.xwpf.usermodel.XWPFParagraph;
    import org.apache.poi.xwpf.usermodel.XWPFRun;
    import org.apache.poi.xwpf.usermodel.XWPFTableCell;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTInd;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPr;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSpacing;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc;
    import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr;
    
    import cn.afterturn.easypoi.entity.ImageEntity;
    import cn.afterturn.easypoi.util.PoiPublicUtil;
    import cn.afterturn.easypoi.word.entity.MyXWPFDocument;
    
    /**
     * Word 样式copy Created by JueYue on 2017/9/19.
     */
    public class PoiWordStyleUtilTest {
    
    
        public static void copyCellAndSetValue(XWPFTableCell tmpCell, XWPFTableCell cell, String text) throws Exception {
            CTTc cttc2 = tmpCell.getCTTc();
            CTTcPr ctPr2 = cttc2.getTcPr();
    
            CTTc cttc = cell.getCTTc();
            CTTcPr ctPr = cttc.addNewTcPr();
            if (tmpCell.getColor() != null) {
                cell.setColor(tmpCell.getColor());
            }
            if (tmpCell.getVerticalAlignment() != null) {
                cell.setVerticalAlignment(tmpCell.getVerticalAlignment());
            }
            if (ctPr2.getTcW() != null) {
                ctPr.addNewTcW().setW(ctPr2.getTcW().getW());
            }
            if (ctPr2.getVAlign() != null) {
                ctPr.addNewVAlign().setVal(ctPr2.getVAlign().getVal());
            }
            if (cttc2.getPList().size() > 0) {
                CTP ctp = cttc2.getPList().get(0);
                if (ctp.getPPr() != null) {
                    if (ctp.getPPr().getJc() != null) {
                        cttc.getPList().get(0).addNewPPr().addNewJc().setVal(ctp.getPPr().getJc().getVal());
                    }
                }
            }
    
            if (ctPr2.getTcBorders() != null) {
                ctPr.setTcBorders(ctPr2.getTcBorders());
            }
    
            XWPFParagraph tmpP = tmpCell.getParagraphs().get(0);
            XWPFParagraph cellP = cell.getParagraphs().get(0);
            XWPFRun tmpR = null;
            if (tmpP.getRuns() != null && tmpP.getRuns().size() > 0) {
                tmpR = tmpP.getRuns().get(0);
            }
            XWPFRun cellR = cellP.createRun();
            cellR.setText(text);
            //复制字体信息
            if (tmpR != null) {
                cellR.setBold(tmpR.isBold());
                cellR.setItalic(tmpR.isItalic());
                cellR.setStrike(tmpR.isStrike());
                cellR.setUnderline(tmpR.getUnderline());
                cellR.setColor(tmpR.getColor());
                cellR.setTextPosition(tmpR.getTextPosition());
                if (tmpR.getFontSize() != -1) {
                    cellR.setFontSize(tmpR.getFontSize());
                }
                if (tmpR.getFontFamily() != null) {
                    cellR.setFontFamily(tmpR.getFontFamily());
                }
                if (tmpR.getCTR() != null) {
                    if (tmpR.getCTR().isSetRPr()) {
                        CTRPr tmpRPr = tmpR.getCTR().getRPr();
                        if (tmpRPr.isSetRFonts()) {
                            CTFonts tmpFonts = tmpRPr.getRFonts();
                            CTRPr cellRPr = cellR.getCTR().isSetRPr() ? cellR.getCTR().getRPr() : cellR.getCTR().addNewRPr();
                            CTFonts cellFonts = cellRPr.isSetRFonts() ? cellRPr.getRFonts() : cellRPr.addNewRFonts();
                            cellFonts.setAscii(tmpFonts.getAscii());
                            cellFonts.setAsciiTheme(tmpFonts.getAsciiTheme());
                            cellFonts.setCs(tmpFonts.getCs());
                            cellFonts.setCstheme(tmpFonts.getCstheme());
                            cellFonts.setEastAsia(tmpFonts.getEastAsia());
                            cellFonts.setEastAsiaTheme(tmpFonts.getEastAsiaTheme());
                            cellFonts.setHAnsi(tmpFonts.getHAnsi());
                            cellFonts.setHAnsiTheme(tmpFonts.getHAnsiTheme());
                        }
                    }
                }
            }
            //复制段落信息
            if (tmpP.getAlignment() != null) {
                cellP.setAlignment(tmpP.getAlignment());
            }
            if (tmpP.getVerticalAlignment() != null) {
                cellP.setVerticalAlignment(tmpP.getVerticalAlignment());
            }
            if (tmpP.getBorderBetween() != null) {
                cellP.setBorderBetween(tmpP.getBorderBetween());
            }
            if (tmpP.getBorderBottom() != null){
                cellP.setBorderBottom(tmpP.getBorderBottom());
            }
            if (tmpP.getBorderLeft() != null){
                cellP.setBorderLeft(tmpP.getBorderLeft());
            }
            if (tmpP.getBorderRight() != null){
                cellP.setBorderRight(tmpP.getBorderRight());
            }
            if (tmpP.getBorderTop() != null){
                cellP.setBorderTop(tmpP.getBorderTop());
            }
            cellP.setPageBreak(tmpP.isPageBreak());
            if (tmpP.getCTP() != null) {
                if (tmpP.getCTP().getPPr() != null) {
                    CTPPr tmpPPr = tmpP.getCTP().getPPr();
                    CTPPr cellPPr = cellP.getCTP().getPPr() != null ? cellP.getCTP().getPPr() : cellP.getCTP().addNewPPr();
                    //复制段落间距信息
                    CTSpacing tmpSpacing = tmpPPr.getSpacing();
                    if (tmpSpacing != null) {
                        CTSpacing cellSpacing = cellPPr.getSpacing() != null ? cellPPr.getSpacing() : cellPPr.addNewSpacing();
                        if (tmpSpacing.getAfter() != null) {
                            cellSpacing.setAfter(tmpSpacing.getAfter());
                        }
                        if (tmpSpacing.getAfterAutospacing() != null) {
                            cellSpacing.setAfterAutospacing(tmpSpacing.getAfterAutospacing());
                        }
                        if (tmpSpacing.getAfterLines() != null) {
                            cellSpacing.setAfterLines(tmpSpacing.getAfterLines());
                        }
                        if (tmpSpacing.getBefore() != null) {
                            cellSpacing.setBefore(tmpSpacing.getBefore());
                        }
                        if (tmpSpacing.getBeforeAutospacing() != null) {
                            cellSpacing.setBeforeAutospacing(tmpSpacing.getBeforeAutospacing());
                        }
                        if (tmpSpacing.getBeforeLines() != null) {
                            cellSpacing.setBeforeLines(tmpSpacing.getBeforeLines());
                        }
                        if (tmpSpacing.getLine() != null) {
                            cellSpacing.setLine(tmpSpacing.getLine());
                        }
                        if (tmpSpacing.getLineRule() != null) {
                            cellSpacing.setLineRule(tmpSpacing.getLineRule());
                        }
                    }
                    //复制段落缩进信息
                    CTInd tmpInd = tmpPPr.getInd();
                    if (tmpInd != null) {
                        CTInd cellInd = cellPPr.getInd() != null ? cellPPr.getInd() : cellPPr.addNewInd();
                        if (tmpInd.getFirstLine() != null) {
                            cellInd.setFirstLine(tmpInd.getFirstLine());
                        }
                        if (tmpInd.getFirstLineChars() != null) {
                            cellInd.setFirstLineChars(tmpInd.getFirstLineChars());
                        }
                        if (tmpInd.getHanging() != null) {
                            cellInd.setHanging(tmpInd.getHanging());
                        }
                        if (tmpInd.getHangingChars() != null) {
                            cellInd.setHangingChars(tmpInd.getHangingChars());
                        }
                        if (tmpInd.getLeft() != null) {
                            cellInd.setLeft(tmpInd.getLeft());
                        }
                        if (tmpInd.getLeftChars() != null) {
                            cellInd.setLeftChars(tmpInd.getLeftChars());
                        }
                        if (tmpInd.getRight() != null) {
                            cellInd.setRight(tmpInd.getRight());
                        }
                        if (tmpInd.getRightChars() != null) {
                            cellInd.setRightChars(tmpInd.getRightChars());
                        }
                    }
                }
            }
        }
    
        /**
         * fe支持图片功能
         * @param tmpCell
         * @param createCell
         * @param eval
         */
        public static void copyCellAndSetValue(XWPFTableCell tmpCell, XWPFTableCell cell, Object text) throws Exception {
            CTTc cttc2 = tmpCell.getCTTc();
            CTTcPr ctPr2 = cttc2.getTcPr();
    
            CTTc cttc = cell.getCTTc();
            CTTcPr ctPr = cttc.addNewTcPr();
            if (tmpCell.getColor() != null) {
                cell.setColor(tmpCell.getColor());
            }
            if (tmpCell.getVerticalAlignment() != null) {
                cell.setVerticalAlignment(tmpCell.getVerticalAlignment());
            }
            if (ctPr2.getTcW() != null) {
                ctPr.addNewTcW().setW(ctPr2.getTcW().getW());
            }
            if (ctPr2.getVAlign() != null) {
                ctPr.addNewVAlign().setVal(ctPr2.getVAlign().getVal());
            }
            if (cttc2.getPList().size() > 0) {
                CTP ctp = cttc2.getPList().get(0);
                if (ctp.getPPr() != null) {
                    if (ctp.getPPr().getJc() != null) {
                        cttc.getPList().get(0).addNewPPr().addNewJc().setVal(ctp.getPPr().getJc().getVal());
                    }
                }
            }
    
            if (ctPr2.getTcBorders() != null) {
                ctPr.setTcBorders(ctPr2.getTcBorders());
            }
    
            XWPFParagraph tmpP = tmpCell.getParagraphs().get(0);
            XWPFParagraph cellP = cell.getParagraphs().get(0);
            XWPFRun tmpR = null;
            if (tmpP.getRuns() != null && tmpP.getRuns().size() > 0) {
                tmpR = tmpP.getRuns().get(0);
            }
            XWPFRun cellR = cellP.createRun();
            addAnImage((ImageEntity) text, cellR);
            //复制字体信息
            if (tmpR != null) {
                cellR.setBold(tmpR.isBold());
                cellR.setItalic(tmpR.isItalic());
                cellR.setStrike(tmpR.isStrike());
                cellR.setUnderline(tmpR.getUnderline());
                cellR.setColor(tmpR.getColor());
                cellR.setTextPosition(tmpR.getTextPosition());
                if (tmpR.getFontSize() != -1) {
                    cellR.setFontSize(tmpR.getFontSize());
                }
                if (tmpR.getFontFamily() != null) {
                    cellR.setFontFamily(tmpR.getFontFamily());
                }
                if (tmpR.getCTR() != null) {
                    if (tmpR.getCTR().isSetRPr()) {
                        CTRPr tmpRPr = tmpR.getCTR().getRPr();
                        if (tmpRPr.isSetRFonts()) {
                            CTFonts tmpFonts = tmpRPr.getRFonts();
                            CTRPr cellRPr = cellR.getCTR().isSetRPr() ? cellR.getCTR().getRPr() : cellR.getCTR().addNewRPr();
                            CTFonts cellFonts = cellRPr.isSetRFonts() ? cellRPr.getRFonts() : cellRPr.addNewRFonts();
                            cellFonts.setAscii(tmpFonts.getAscii());
                            cellFonts.setAsciiTheme(tmpFonts.getAsciiTheme());
                            cellFonts.setCs(tmpFonts.getCs());
                            cellFonts.setCstheme(tmpFonts.getCstheme());
                            cellFonts.setEastAsia(tmpFonts.getEastAsia());
                            cellFonts.setEastAsiaTheme(tmpFonts.getEastAsiaTheme());
                            cellFonts.setHAnsi(tmpFonts.getHAnsi());
                            cellFonts.setHAnsiTheme(tmpFonts.getHAnsiTheme());
                        }
                    }
                }
            }
            //复制段落信息
            if (tmpP.getAlignment() != null) {
                cellP.setAlignment(tmpP.getAlignment());
            }
            if (tmpP.getVerticalAlignment() != null) {
                cellP.setVerticalAlignment(tmpP.getVerticalAlignment());
            }
            if (tmpP.getBorderBetween() != null) {
                cellP.setBorderBetween(tmpP.getBorderBetween());
            }
            if (tmpP.getBorderBottom() != null){
                cellP.setBorderBottom(tmpP.getBorderBottom());
            }
            if (tmpP.getBorderLeft() != null){
                cellP.setBorderLeft(tmpP.getBorderLeft());
            }
            if (tmpP.getBorderRight() != null){
                cellP.setBorderRight(tmpP.getBorderRight());
            }
            if (tmpP.getBorderTop() != null){
                cellP.setBorderTop(tmpP.getBorderTop());
            }
            cellP.setPageBreak(tmpP.isPageBreak());
            if (tmpP.getCTP() != null) {
                if (tmpP.getCTP().getPPr() != null) {
                    CTPPr tmpPPr = tmpP.getCTP().getPPr();
                    CTPPr cellPPr = cellP.getCTP().getPPr() != null ? cellP.getCTP().getPPr() : cellP.getCTP().addNewPPr();
                    //复制段落间距信息
                    CTSpacing tmpSpacing = tmpPPr.getSpacing();
                    if (tmpSpacing != null) {
                        CTSpacing cellSpacing = cellPPr.getSpacing() != null ? cellPPr.getSpacing() : cellPPr.addNewSpacing();
                        if (tmpSpacing.getAfter() != null) {
                            cellSpacing.setAfter(tmpSpacing.getAfter());
                        }
                        if (tmpSpacing.getAfterAutospacing() != null) {
                            cellSpacing.setAfterAutospacing(tmpSpacing.getAfterAutospacing());
                        }
                        if (tmpSpacing.getAfterLines() != null) {
                            cellSpacing.setAfterLines(tmpSpacing.getAfterLines());
                        }
                        if (tmpSpacing.getBefore() != null) {
                            cellSpacing.setBefore(tmpSpacing.getBefore());
                        }
                        if (tmpSpacing.getBeforeAutospacing() != null) {
                            cellSpacing.setBeforeAutospacing(tmpSpacing.getBeforeAutospacing());
                        }
                        if (tmpSpacing.getBeforeLines() != null) {
                            cellSpacing.setBeforeLines(tmpSpacing.getBeforeLines());
                        }
                        if (tmpSpacing.getLine() != null) {
                            cellSpacing.setLine(tmpSpacing.getLine());
                        }
                        if (tmpSpacing.getLineRule() != null) {
                            cellSpacing.setLineRule(tmpSpacing.getLineRule());
                        }
                    }
                    //复制段落缩进信息
                    CTInd tmpInd = tmpPPr.getInd();
                    if (tmpInd != null) {
                        CTInd cellInd = cellPPr.getInd() != null ? cellPPr.getInd() : cellPPr.addNewInd();
                        if (tmpInd.getFirstLine() != null) {
                            cellInd.setFirstLine(tmpInd.getFirstLine());
                        }
                        if (tmpInd.getFirstLineChars() != null) {
                            cellInd.setFirstLineChars(tmpInd.getFirstLineChars());
                        }
                        if (tmpInd.getHanging() != null) {
                            cellInd.setHanging(tmpInd.getHanging());
                        }
                        if (tmpInd.getHangingChars() != null) {
                            cellInd.setHangingChars(tmpInd.getHangingChars());
                        }
                        if (tmpInd.getLeft() != null) {
                            cellInd.setLeft(tmpInd.getLeft());
                        }
                        if (tmpInd.getLeftChars() != null) {
                            cellInd.setLeftChars(tmpInd.getLeftChars());
                        }
                        if (tmpInd.getRight() != null) {
                            cellInd.setRight(tmpInd.getRight());
                        }
                        if (tmpInd.getRightChars() != null) {
                            cellInd.setRightChars(tmpInd.getRightChars());
                        }
                    }
                }
            }
        }
    
        /**
         * 添加图片
         * 
         * @author JueYue
         *  2013-11-20
         * @param obj
         * @param currentRun
         * @throws Exception
         */
        private static void addAnImage(ImageEntity obj, XWPFRun currentRun) throws Exception {
            Object[] isAndType = PoiPublicUtil.getIsAndType(obj);
            String picId;
            try {
                picId = currentRun.getDocument().addPictureData((byte[]) isAndType[0],
                    (Integer) isAndType[1]);
                ((MyXWPFDocument) currentRun.getDocument()).createPicture(currentRun,
                    picId, currentRun.getDocument()
                        .getNextPicNameNumber((Integer) isAndType[1]),
                    obj.getWidth(), obj.getHeight());
    
            } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
    }
    
    
    展开全文
  • 而大多数时候我们写的word并不是都是从第一页一直到最后一页进行顺序页码排序的,而是会在某页重新开始作为第一页。本次所记录内容正是解决该问题的方法过程。 二、实验环境 word环境:office2016 三、详细过程 ...
  • Word删除空白

    千次阅读 2018-10-09 19:27:00
    因为,在Word中除了文本、图片、表格之外还有许多的格式标记,而很多时候这些标记往往是隐藏在页面之中,所以我们无法看到这些标记,而这些标记也会占用我们文档上区域,所以才会导致出现空白...
  • 解决WORD疑难之:设置节起始页码后出现诡异隐藏页/跳、节首页页面边框丢失 适用软件及版本:MS OFFICE2003 pro中的WORD,其它版本应可适用。 适用人群:编排大中型复杂文档的用户 症状:文档中的某些节首页页数...
  • Spire.Doc 是个MS Word 组件,使用户可以直接执行各种Word文档处理任务,本教程讲述了如何将word文档中的隐藏文本保存到PDF。
  • Word空白删除小技巧

    千次阅读 2019-06-20 18:38:10
    平时在编辑Word文档的时候,是不是在中间或者最后一页的时候,常常会莫名出现空白页,而且这个空白页还经常是怎么删都删不掉的?这时候真的是很苦恼,特别是页码设置的排版,无端端多出的空白页非常影响排版~~ 不...
  • word转PDF多余空白的问题

    万次阅读 2019-05-08 21:01:21
     大论文一般都会勾选奇偶页不同,word隐藏设定就是,勾选了这一部分之后,我为了保证奇偶页不同,那么我必须每一节的文章页数都是偶数的,所以,当不足偶数的时候,word就会自作主张的增加一页空白,但...
  • vba操作word删除某些页面

    千次阅读 2016-02-05 15:52:12
    突然要进行word的vba操作,真心不适应,可以删除word的页面 bug:每次删除的时候都是重新计算页码,所以说需要计算好每次删除后的页面页码Sub kk1206190933() Dim wNum As Integer Dim wPag As Integer 'Dim arr...
  • Word转出来的PDF为什么空白

    千次阅读 2020-03-12 15:12:47
    Word转PDF为什么会出现...原因Word文档本身空白 如果Word文档中包含空段落、分页符或分节符会导致文档出现空白,这种情况只需要将这些编辑标记删除,空白就会被删除了。 操作步骤: 打开Word文档后,将...
  • 很多学校的毕业论文会要求:页眉奇偶不同,比如奇数为:****大学,偶数为:本章标题(每章的标题是不同的),但是呢,页码需要设置为连续的,笨笨的我在如何实现前面的要求这里卡了快天。 1.每章奇偶...
  • 在“格式”-“段落”-“换行和分页”选项卡中,将“分页”栏中的“与下段同”、“段中不分页”、“段前分页”的勾选去掉。
  • Word邮件合并功能详解:合并后生成多个word文档,删除空白 最近在实习,干了很多打杂得工作,所以office软件用的很多很多,瞬间觉得自己可以去裸考计算机二级了哈哈哈哈哈哈。今天因为工作用到了邮件合并这个功能...
  • word2013从某设置页码

    千次阅读 2016-03-03 13:36:38
    word设置页码和总页数
  • 在对试卷进行制作时会连同答案一起录入,这样在批改试卷时出现了...份完整的试卷不可能隐藏,这时就需要一些小技巧进行快速操作,下面给大家分享一键快速隐藏答案的Word技巧。 点击添加图片描述(最多60...
  • Sub 批量格式设置() '此代码为指定文件夹中所有选取的WORD文件的进行格式设置 Dim MyDialog As FileDialog, vrtSelectedItem As Variant, Doc As Document ' On Error Resume Next '忽略错误 '定义个文件夹...
  • html页面转成word文档

    万次阅读 2019-08-02 13:29:08
    这是word测试 这是word测试 这是word测试 这是word测试 这是word测试 第列 第二列 第三列 <td>11 <td>12 <td>13 <td>21 <td>22 <td>23 ...
  • office2007 word 从任意插入页码

    千次阅读 2011-05-31 09:54:00
    最近设计一份毕业论文,... 2 、点正文第一页任意位置,然后点击命令“插入→页眉页脚→页码→设置页面格式”,设置你需要起始页从什么数字开始;再执行“插入->页眉页脚->页码-页面底端->普通数字3(此处根
  • 一个Word文档原本好好的,在反复的编辑过程也不知道为什么产生了空白页,它们应该怎么删除呢?这要看由什么导致的空白页,不同的情况...一、Word怎么删除由分节符导致的空白页(一)情况一:分节符导致最后一页为...
  • 【项目实战】Java POI之Word导出经典案例

    万次阅读 热门讨论 2016-12-09 14:50:20
    最近项目中需要用到数据的导出到Word,本在项目中使用POI将数据导入到Word,和Excel导出类似,先将jar包导入进去(我这里就省去导jar包啦),我直接上实现过程吧! 1、导入POI jar包; 2、创建新的Word模板,如下图...
  • 、需求 根据word模板,动态填充模板内容,生成新的word。 二、poi-tl介绍 poi-tl(poi template language)是Word模板引擎,基于Microsoft Word模板和数据生成新的文档。 Apache POI不仅在上层封装了易用的文档API...
  • 最近项目碰到需要隐藏office web app的打印和在word中打开等功能。没有屏蔽前如下图: 解决方法 1、 这里采用jquery来隐藏,下载jquery最新脚本库jquery-1.9.0.min.js(下载地址 http://jquery.com/ ...
  • PDF转Word提示页面过大导致转换失败:可能是由于您的文档太大或页面太多造成的又或者是您文档中包含较多的“图片”尤其是“大型的图纸”,转换器设定的标准是A4页面,如果超过该页面大小就可以出现转换失败或者不...
  • 那么怎么样才能隐藏地址栏参数呢?首先必须自己动态创建个表单,将表单method改为post,提交这个表单就ok了。 // ===============JavaScript===================== function postToPage() { var f...
  • 毕业论文 Word 排版技巧

    千次阅读 多人点赞 2019-12-11 12:59:58
    Office和WPS是我们经常会使用到的办公软件,对于Office和WPS的背景我们就不做评价了,但是对于经常做笔记的我来说,一点是WPS所没有的,而这一点对我来说特别方便,所以我还是比较喜欢使用Office里的Word。...
  • 隐藏标签 chromeJustin Duino贾斯汀·杜伊诺(Justin Duino)Google’s Tab Groups feature is available in Chrome 83, releasing on May 19, 2020. Google is slowly rolling out the feature along with the ...
  • 参考文章:...-------------------------------------------------------------------------------------------------------------------  百度了一下,如何在word的任意一页开始插入页码,发现还真难理
  • word知识总结

    2019-06-10 14:18:58
    时候我们会遇到一些问题,比如我们删除了第1的后半部分内容,按道理来说,第2的内容会更上来,填补第1的空白,但是时候由于分隔符的存在,导致第2的内容无法更上去填补第1的内容,这时候就要删除分隔...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,999
精华内容 17,599
关键字:

word有一页隐藏页