精华内容
下载资源
问答
  • VBA隐藏Word表格

    2019-10-08 10:27:45
    Sub test() ActiveDocument.Tables(1).Rows(2).Range.Font....文档中的第一个表格的第二行将被隐藏。 欢迎访问《许阳的红泥屋》 转载于:https://www.cnblogs.com/mksword/archive/2012/08/08/3934047.html...
    Sub test()
        ActiveDocument.Tables(1).Rows(2).Range.Font.Hidden = True
    End Sub


    文档中的第一个表格的第二行将被隐藏。


    欢迎访问《许阳的红泥屋

    转载于:https://www.cnblogs.com/mksword/archive/2012/08/08/3934047.html

    展开全文
  • word中如何隐藏表格线框

    万次阅读 2009-09-13 15:16:00
    选定表格后,表格菜单中的表格属性,有边框中设置相应的边框为无,再在表格菜单中设置隐藏虚框 .(虚框构成了单元格的边框,且不能打印。所有的表格表格表格由一行或多行单元格组成,用于显示数字和其他项以便快速...

    选定表格后,表格菜单中的表格属性,有边框中设置相应的边框为无,再在表格菜单中设置隐藏虚框 .

    (虚框构成了单元格的边框,且不能打印。所有的表格 (表格:表格由一行或多行单元格组成,用于显示数字和其他项以便快速引用和分析。表格中的项被组织为行和列。)都具有默认的 0.5 磅黑色单实线边框,该边框可以打印。如果删除该边框,虚框依然存在,除非隐藏它们。在“表格”菜单中,单击“显示虚框”或者“隐藏虚框”。)

    展开全文
  • 使用虚框的目的就是让我们更能直观的对数据进行编辑和排版,使用word的用户在制作表格的时候都会用虚线框来进行一个简单的排版设置,接下来看看在word中是如何将虚线框设置显示或者隐藏的。当你想要去打印虚框的话,...

    我们知道word中的表格虚线框打印出来是不会显示的,使用虚框的目的就是让我们更能直观的对数据进行编辑和排版,使用word的用户在制作表格的时候都会用虚线框来进行一个简单的排版设置,接下来看看在word中是如何将虚线框设置显示或者隐藏的。

    当你想要去打印虚框的话,你可以先选中表格,然后再去单击右键选择“设置文本框格式”,在“颜色与线条”选项卡下的“虚实”、“粗细”和“线性”里组合你想要的效果,所有的表格都具有默认的0.5磅黑色单实线边框,该边框可以打印。我们其实也是可以对word表格边框进行加粗显示。如果你是删除该边框,那么虚框依然存在,当你隐藏它们的时候就不存在了。

    需要注意的是:如果你是切换到web网页浏览器,那么在Web浏览器中浏览文本时虚框是不可见的,同时也是无法打印显示出来的,这一点我们是需要了解清楚的。

    word2003怎么去隐藏和显示虚框:

    首先我们可以先点击菜单栏的“表格---隐藏虚框”就可以将虚框给隐藏掉了,我们看到下图中的操作所示:如果你要在显示虚框同样在执行上述就可显示虚框。

    那么在word2007/2010怎么隐藏和显示虚框呢?

    在新的版本中去显示和隐藏虚框也是比较简单的,我们可以选中表格,就会在菜单栏上面出现“表格工具”,在下方点击“设计--边框”,然后在边框的下拉框上就可以选择各种各样的边框选项。

    结语:在word中边框的显示和隐藏的操作是比较简单的必备技巧,适当的去隐藏和显示虚框可以帮助我们在word中更好的去设计和排版,同时我们也需要在word中多点去研究,多点去使用小技巧和工具才能更好的去掌握。

    展开全文
  • 最近在用EasyPOI的word模板导出功能,遇到了这样的一个需求:在用指令fe:List遍历输出List时,要在中间进行表格的分隔。如果直接把一个表格分成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表格中这些隐藏的小技巧吗?1、制作标签如何制作下图所示的标签?选中表格,右击【表格属性】,在打开的界面中选择【选项】,随后勾选【允许调整单元格间距】,...
  • word表格后空白页无法删除 觉得有用的话,欢迎一起讨论相互学习~ 表格后有个空白页,原因是有一个段落符,这个段落符无法使用删除键删除,提供两种方法 隐藏符号 选中符号–>开始–>字体–>隐藏 ...
  • Word标尺常常用于对齐文档中的文本、图形、表格等等其他一些元素。在Word中善用标尺,能够大大提高我们的工作效率。赶紧往下看,学起来吧~Word标尺在哪里?Word标尺有两种,有水平标尺和垂直标尺,存放在Word编辑...
  • 若是,那浪费时间了,其实在Word中有一个隐藏的工具可以快速录入,今天同创双子就跟大家分享一个在Word里快速添加序号的技巧,希望对大家有所帮助。一、Word中批量输入编号选中要输入序号的表格,点击【...
  • Word表格占满了一整页,但是下面多了一页空白页,空白页只有一个换行符,直接Delete或者Backspace都不好使,表格缩小一点空白页就没有了,不缩小表格也可以这么做: 1.先隐藏编辑标记 2.选择空白页的换行符,右键...
  • 1、问题描述 (1)word表格前面有一行文字描述,当表格行数或内容增多时,该一行文字描述被挤到表格后面了。 (2)word表格行数或内容增多时,...解决方法,将该描述合并到表格里面,将不需要的边框隐藏住 (...
  • 在制作一份报告或者一篇文档,经常因为一个软件的硬伤,折腾半天。如果对插入的表格数据不进行分类,表格在跨页后,没有相关...WORD中插入的表格跨页后,如何为下一页的表格自动添加标题?比如下边这张税金计算表:...
  • 最近同事的一个word文档中的表格操作非常不灵活,用鼠标直接调整列宽时总觉得很不灵活。她的操作系统为XP,office 为微软office 2003。 我首先检查了木马,检查了输入法等,结果都没有问题。 后来我发现她为了阅读...
  • 曾经的同事微信求助,在一个类似问卷的docx文件中的某个Table内,分别放入两个按钮:显示、隐藏,用于指导用户进行表格填写 方法 1. 创建一个docm文件,并启用宏 2. 在Visual Basic编辑器中插入如下代码 ...
  • 1. 删除数字中的小数部分在制作一些特殊表格时,若表格中数据的小数部分没有实际意义,有时可以直接把表格数字中的小数部分全部删除掉,如何一次性快速删除呢?我们可以利用“查找和替换功能”快速实现。操作方法:...
  • 隐藏效果如下所示: 这是因为文字的【段落行距】设置为【固定值】,将文字选中,设置为【单倍行距】即可。 转载于:https://www.cnblogs.com/baixu/p/10370160.html...
  • 可能是由于表格宽度不够引起的,内容被自动隐藏了。可以通过修改行距的方式来解决。 修改行距: 方法一: 步骤一:首先我们打开word软件,然后点击左上角的打开按钮,以打开我们需要调整的word文档; 步骤二:然后...
  • 问题:我需要把一个表格中的某一行的左边框和右边框隐藏掉,来达到看起来像是把一个表格分隔开了 比如在图中把第二行的左边框和右边框隐藏掉: 代码: if(currentRow.getCell(0).getText().equals("本检测...
  • 隐藏文字选中,设为【宋体】或其他已经安装字体。  b.下载【方正仿宋简体】文件,复制到 C:\WINDOWS\Fonts 文件夹,会提示安装,安装完成即可直接使用该字体。  注:如果不是必须使用未安装字体,建议使用...
  • poi导出word内嵌表格设计分析部分后端代码部分xml文件配置实体类controller层使用到的工具类service层前端代码部分测试页面 设计分析部分 首先要对导出word的需求进行分析,以下展示,本项目中,导出的word格式 出于...
  • 环境:word 2016 表格 问题描述:新建的表格,不知怎么折腾出行结束符,同文件其它地方表格无此符号 问题产生原因:选中表格>布局>根据窗口自动调整表格>表格后面出现此符号。后发现,通过 “选中表格>...
  • 一:SmartArt排版第一步:选中图片,激活隐藏选项卡【图片工具-格式】 接着我们单击【图片样式】-【图片版式】下拉按钮,这里有非常多的SmartArt预设版式。单击选择任一款(这里以第一排第三列为例),图片就是自动...
  • 表格文字超出行隐藏

    2013-05-10 14:53:56
    /* 只有定义了表格的布局算法为fixed,下面td的定义才能起作用。 */ } td{ word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }注意:还要给每一个td设置宽度才可以,如果出现串行的...
  • 表格(隐藏表头)

    2010-04-13 23:13:00
    &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt; &lt;meta name="ProgId" content="Word.Document"...Microsoft Word 12&quo
  • /* 只有定义了表格的布局算法为fixed,下面td的定义才能起作用。 */ } td{ width:100%; word-break:keep-all;/* 不换行 */ white-space:nowrap;/* 不换行 */ overflow:hidden;/* 内容超出宽度时隐藏超...
  • word-break:break-all和word-wrap:break-word的区别 word-break:break-all 允许任意非CJK(Chinese/Japanese/Korean)文本间的单词断行。 word-wrap:break-word 一行单词中实在没有其他靠谱的换行点的时候换行。...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 230
精华内容 92
关键字:

word隐藏表格怎么删除