精华内容
下载资源
问答
  • //melon-树形word进数据库 @RequestMapping(value = "/test_word", method = RequestMethod.POST, produces = {"application/json;charset=utf-8"}) @ResponseBody public String test_word(@RequestParam(value ...
    //melon-树形word进数据库
        @RequestMapping(value = "/test_word", method = RequestMethod.POST, produces = {"application/json;charset=utf-8"})
        @ResponseBody
        public String test_word(@RequestParam(value = "file", required = false) MultipartFile file) throws Exception {
            if (file.isEmpty()) {
                return NR.r(CodeDict.CODE_MESSAGE, -1, CodeDict.UPLOAD_EMPTY, null, null, 0, 0);
            } else {
                String fileName = setFile(file, "CheckItemWord\\");
                String path = System.getProperty("catalina.home") + "\\webapps\\CheckItemWord\\" + fileName;
                uploadService.testWord(path);
                return NR.r(CodeDict.CODE_MESSAGE, 1, 0, null, null, 0, 0);
            }
        }
    

    操作整个word:

     public void testWord(String path) throws IOException {
            InputStream is = new FileInputStream(path);
            XWPFDocument doc = new XWPFDocument(is);
            List<XWPFParagraph> paras = doc.getParagraphs();
            for (XWPFParagraph para : paras) {
                //当前段落的属性
    //       CTPPr pr = para.getCTP().getPPr();
               // System.out.println("段落属性:"+para.getText());
            }
            //获取文档中所有的表格
            List<XWPFTable> tables = doc.getTables();
            List<XWPFTableRow> rows;
            List<XWPFTableCell> cells;
            for (XWPFTable table : tables) {
                //表格属性
    //       CTTblPr pr = table.getCTTbl().getTblPr();
                //获取表格对应的行
                rows = table.getRows();
                System.out.println(table.getRow(0));
                for (XWPFTableRow row : rows) {
                    //获取行对应的单元格
                    cells = row.getTableCells();
                    
                    for (XWPFTableCell cell : cells) {
                        System.out.println(cell.getText());
                    }
                }
            }
            //关闭流
            if (is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
    public void testWord(String path) throws IOException {
            List<HSEImportDto> lists = new ArrayList<>();//接收从Excel中读出来映射的实体
            HSEImportDto hSEImportDto = new HSEImportDto();
            HashMap<String, String> result = new HashMap<>();//存放最终结果
            HashSet<HSEImportMapDto>hs=new HashSet<>();//存放最终放入数据库的集合
            HashMap<String, Integer> index1 = new HashMap<>();//判断子节点序号大小
            HashMap<String, Integer> index2 = new HashMap<>();//判断子节点序号大小
            HashMap<String, Integer> index3 = new HashMap<>();//判断子节点序号大小
            HashMap<String, String> mid = new HashMap<>();//存放最后一级节点的值
            String s11="";String s22="";String s33="";
            int num=0;
            InputStream is = new FileInputStream(path);
            XWPFDocument doc = new XWPFDocument(is);
            List<XWPFTable> tables = doc.getTables();//获取文档中所有的表格
            List<XWPFTableRow> rows;
           // List<XWPFTableCell> cells;
            for (XWPFTable table : tables) { //获取表格对应的行
                rows = table.getRows();
                for (XWPFTableRow row : rows) {
                    if("".equals(row.getCell(0).getText())) hSEImportDto.setTheme(s11);//第一单元格
                    else {
                        hSEImportDto.setTheme(row.getCell(0).getText());
                        s11=row.getCell(0).getText();//存入s11
                    }
                    if("".equals(row.getCell(1).getText())) hSEImportDto.setItems(s22);//第二单元格
                    else {
                        hSEImportDto.setItems(row.getCell(1).getText());
                        s22=row.getCell(1).getText();//存入s22
                    }
                    if("".equals(row.getCell(2).getText())) hSEImportDto.setContent(s33);//第三单元格
                    else {
                        hSEImportDto.setContent(row.getCell(2).getText());
                        s33=row.getCell(2).getText();//存入s33
                    }
                        hSEImportDto.setAssessment(row.getCell(3).getText());
                        hSEImportDto.setInstructions(row.getCell(4).getText());
                    lists.add(hSEImportDto);
                    for (HSEImportDto pojo : lists) {
                        if (!result.containsKey(pojo.getTheme())) {           //第一层集合中没有的话添加
                            result.put(pojo.getTheme(), "0" + num);//放入全局map中
                            num++;
                            index1.put(pojo.getTheme(), 0);//判断本身有几个孩子节点
                        }
                        if (!result.containsKey(pojo.getItems())) {         //第二级结果中没有
                            Integer s = index1.get(pojo.getTheme());//得到编号
                            index1.put(pojo.getTheme(), s + 1);//编号加一放回
                            result.put(pojo.getItems(), result.get(pojo.getTheme()) + "0" + (s + 1));
                            index2.put(pojo.getItems(), 0);//判断本身有几个孩子节点
                        }
                        if(!result.containsKey(pojo.getContent())){        //第三级没有
                            Integer s1 = index2.get(pojo.getItems());//得到编号
                            index2.put(pojo.getItems(), s1+1);//编号加一放回
                            result.put(pojo.getContent(), result.get(pojo.getItems())+"0"+(s1+1));
                            index3.put(pojo.getContent(), 0);//判断本身有几个孩子节点
                        }
                        if(!result.containsKey(pojo.getAssessment())){      //第四级没有
                            Integer s2 = index3.get(pojo.getContent());//得到编号
                            index3.put(pojo.getContent(), s2+1);//编号加一放回
                            result.put(pojo.getAssessment(), result.get(pojo.getContent())+"0"+(s2+1));
                            mid.put(pojo.getAssessment(),pojo.getInstructions());
                        }
                    }
                }
            }
    
            if (is != null) {//关闭流
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            //遍历map
            for (Map.Entry<String, String> entry : result.entrySet()) {
                HSEImportMapDto hSEImportMapDto=new HSEImportMapDto();
                hSEImportMapDto.setStatus("启用");
                hSEImportMapDto.setType("HSE审核");
                hSEImportMapDto.setHseAuditSystemCode(entry.getValue());
                hSEImportMapDto.setEvalueItem(entry.getKey());
                if(mid.containsKey(entry.getKey())) hSEImportMapDto.setEvalueDescritption(mid.get(entry.getKey()));
                hs.add(hSEImportMapDto);
            }
            List<HSEImportMapDto> pojos=new ArrayList<>();
            pojos.addAll(hs);
            //批量插入数据库
            checkListDao.banchHSEImportMap(pojos);
        }
    

    仅供参考,作者自己使用

    展开全文
  • poi实现对树形结构数据导出excel并合并表格 最近好像得罪了poi,遇到的都是导出word、Excel、pdf的问题。下面我记录一下poi对树形结构的处理,前面先梳理整体思路,文章末尾会贴上完整代码。 首先我们看一下模板和...

    poi实现对树形结构数据导出excel并合并表格


    最近好像得罪了poi,遇到的都是导出word、Excel、pdf的问题。下面我记录一下poi对树形结构的处理,前面先梳理整体思路,文章末尾会贴上完整代码。
    首先我们看一下模板和效果图吧:

    在这里插入图片描述

    在这里插入图片描述
    怎么样,效果还行吧,有没有达到你心目中的标准?如果你也遇到了这样的问题,那么请静下心来花费几分钟时间,我会详细的梳理出自己的思路,希望能够帮助到你。

    1.主要逻辑!

    1.首先,我们来看一下树形结构的数据、正如效果图一样,我这里处理的是一个三层结构。

    ---- 祖先节点(包含祖先节点id,祖先节点name,children,total(当前对象的第三级子节点的数量))
      ---父亲节点(包含祖先节点id,祖先节点name,本身的id,本身的name,children)
         ----子节点(包含上面两个祖先的数据和自己本身的数据,无children)
    数据是提前处理好了的,在代码里的体现就是一个集合List ,StatisticsByPartVo是一个java bean对象,是个树形结构。
    2.因为涉及到表格的合并,我再提一下关键的代码

    sheet0.addMergedRegion(new CellRangeAddress(Parma1,Parma2,Parma3,Parma4));
    

    四个参数分别表示
    Parma1:要合并的开始行
    Parma2:要合并的结束行
    Parma3:要合并的开始列
    Parma4:要合并的结束列
    举个例子,因为坐标都是从(0,0)开始的,我要合并三行四列,参数就是(2,2,3,3)

    现在开始整理一下整体思路:循环整个list集合,用HSSFRow 来创建行,用HSSFCell来创建一行的一个元素,在循环的过程中,将需要合并的数据的坐标,单独用一个List<Map<String,String>>stepList 保存起来,Map里面的数据就是坐标的四个Parma,循环完数据之后,再单独循环坐标集合,统一调用上面的一行代码搞定合并,(记得合并是最后来做的事情)
    怕一段文字太多影响你们阅读,我上面说的是总体思路,下面我再简单说一下针对我这个demo和数据的逻辑。
    1.循环整个list,得到当前对象StatisticsByPartVo,取到StatisticsByPartVo的total,根据total的值和当前rowNum的值,来为第一级添加坐标,我代码里添加了两次,因为序号也是跟第一级一起合并的。
    2.循环当前对象StatisticsByPartVo的children,也是一个集合,得到当前对象secondChild,在循环secondChild的children,分别创建行列,在secondChild的children循环完毕后,为第二级添加坐标,代码的231行,其中注意rowNum和curNum等计数器的变化和位置,如果这个有错也会导致表格格式不对。
    3.循环完之后,循环计步集合,合并表格,整体完毕

            for(Map<String,Integer>map:stepList){
                sheet0.addMergedRegion(new CellRangeAddress(map.get("startIndexRow"), map.get("endIndexRow"), map.get("startIndexCol"), map.get("endIndexCol")));
            }
    

    以上就是我的整体思路,如果你也被这个问题困扰,不如跟着我的思路走一下,整体代码和逻辑都不复杂,如果我的文章能够帮助你解决掉问题,别吝啬你的小指头给作者点个赞哦。

    下面贴上完整逻辑代码,关键地方已经打上注释,欢迎下方留言,有不对的地方欢迎指出。转载请附上原文链接。

    2.完整代码

    package cdcb.govpublic.base.entity;
    
    import cdcb.util.PropertiesUtils;
    import org.apache.poi.hssf.usermodel.*;
    import org.apache.poi.ss.usermodel.Font;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.ss.util.CellRangeAddress;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.OutputStream;
    import java.net.URLEncoder;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    /**
     * @author wq
     * @date 2020/4/2.
     */
    public class StatisticsByPartView {
        public StatisticsByPartView() {
        }
        public static void buildExcelDocument(Map<String, Object> mode, HttpServletRequest request, HttpServletResponse response,String year) throws Exception {
            String path = PropertiesUtils.getValueByKey("excelPath", request.getServletContext().getRealPath("/"));
            String excelModelPath = path + "static/template/listByPart.xls";
            File excel = new File(excelModelPath);
            FileInputStream is = new FileInputStream(excel);
            Workbook workbook = new HSSFWorkbook(is);
            is.close();
            String excelName = year+"年政府网各栏目数据报送情况汇总表";
            //这个方法就是主要创建逻辑方法
            setWorkBookValue(workbook, mode,excelName);
            String userAgent = request.getHeader("User-Agent");
            userAgent = userAgent == null ? "" : userAgent.toLowerCase();
            if (!userAgent.contains("msie") && !userAgent.contains("trident")) {
                excelName = new String(excelName.getBytes(), "iso-8859-1");
            } else {
                excelName = URLEncoder.encode(excelName, "UTF-8");
            }
            response.setContentType("application/octet-stream");
            response.setHeader("Content-disposition", "attachment;filename=\"" + excelName + ".xls\"");
            OutputStream ouputStream = response.getOutputStream();
            workbook.write(ouputStream);
            ouputStream.flush();
            ouputStream.close();
        }
    
        private static void setWorkBookValue(Workbook wbs, Map<String, Object> model,String excelName) {
            List<StatisticsByPartVo> list = (List)model.get("list");
            HSSFCellStyle style = (HSSFCellStyle)wbs.createCellStyle();
            style.setVerticalAlignment((short)1);
            style.setAlignment((short)2);
            style.setWrapText(false);
            style.setBorderBottom((short)1);
            style.setBorderRight((short)1);
            style.setBorderTop((short)1);
            style.setBorderLeft((short)1);
            //这里设置style2的目的是给下面的循环做判断,如果数据为零则加粗标红
            HSSFCellStyle style2 = (HSSFCellStyle) wbs.createCellStyle();
            style2.setVerticalAlignment((short) 1);
            style2.setAlignment((short) 2);
            style2.setWrapText(false);
            style2.setBorderBottom((short) 1);
            style2.setBorderRight((short) 1);
            style2.setBorderTop((short) 1);
            style2.setBorderLeft((short) 1);
            Font ztFont = wbs.createFont();
            ztFont.setColor(Font.COLOR_RED);
            ztFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
            style2.setFont(ztFont);
            //创建工作簿
            HSSFSheet sheet0 = (HSSFSheet)wbs.getSheetAt(0);
            //记录步数的集合
            List<Map<String,Integer>>stepList = new ArrayList<>();
            //下面几行是为了替换模板第一行标题的文字
            HSSFRow headRow = sheet0.getRow(0);
            HSSFCell headCell = headRow.getCell(0);
            headCell.setCellValue(excelName);
            sheet0.createFreezePane(0,3,0,3);
            
            //因为模板的起始行是第三行,所以这里定义为3
            int rowNum = 3;
            for(int i = 0; i < list.size(); ++i) {
                Map<String,Integer>map2 = new HashMap<>();
                Map<String,Integer>map3 = new HashMap<>();
                StatisticsByPartVo vo = list.get(i);
                //为当前对象的第一级和序号列添加步数
                if(vo.getTotal()>1){
                    map2.put("startIndexRow",rowNum);
                    map2.put("endIndexRow",vo.getTotal()+rowNum-1);
                    map2.put("startIndexCol",0);
                    map2.put("endIndexCol",0);
                    map3.put("startIndexRow",rowNum);
                    map3.put("endIndexRow",vo.getTotal()+rowNum-1);
                    map3.put("startIndexCol",1);
                    map3.put("endIndexCol",1);
                    stepList.add(map2);
                    stepList.add(map3);
                }
                //循环第二级
                int curNum = rowNum;
                for(int k=0;k<vo.getChildren().size();k++){
                    StatisticsByPartVo secondChild = vo.getChildren().get(k);
                    Map<String,Integer>map4 = new HashMap<>();
    				//创建第二级和第三级
                    for (int j = 0; j < secondChild.getChildren().size(); j++) {
                        StatisticsByPartVo third = secondChild.getChildren().get(j);
                        HSSFRow rowi = sheet0.createRow(curNum +j);
                        HSSFCell col0 = rowi.createCell(0);
                        col0.setCellStyle(style);
                        HSSFCell col1 = rowi.createCell(1);
                        col1.setCellStyle(style);
                        //创建第一级的数据,下面判断原因:因为要合并,合并内容的数据只需要创建一次就好,其他的为空
                        if(j==0){
                            col1.setCellValue(vo.getFirstName());
                            col0.setCellValue((double)(i + 1));
                        }else{
                            col1.setCellValue("");
                            col0.setCellValue("");
                        }
                        //创建第二级的数据
                        HSSFCell col2 = rowi.createCell(2);
                        col2.setCellStyle(style);
                        if(j == 0){
                            col2.setCellValue(third.getSecondName());
                        }else{
                            col2.setCellValue("");
                        }
                        HSSFCell col3 = rowi.createCell(3);
                        col3.setCellValue(third.getThirdName());
                        col3.setCellStyle(style);
    					//下面都是创建第三级的数据了
                        HSSFCell col4 = rowi.createCell(4);
                        col4.setCellValue(third.getMonth1());
                        if(third.getMonth1() == 0){
                            col4.setCellStyle(style2);
                        }else{
                            col4.setCellStyle(style);
                        }
    
                        HSSFCell col5 = rowi.createCell(5);
                        col5.setCellValue(third.getMonth2());
                        if(third.getMonth2() == 0){
                            col5.setCellStyle(style2);
                        }else{
                            col5.setCellStyle(style);
                        }
    
                        HSSFCell col6 = rowi.createCell(6);
                        col6.setCellValue(third.getMonth3());
                        if(third.getMonth3() == 0){
                            col6.setCellStyle(style2);
                        }else{
                            col6.setCellStyle(style);
                        }
    
                        HSSFCell col7 = rowi.createCell(7);
                        col7.setCellValue(third.getMonth4());
                        if(third.getMonth4() == 0){
                            col7.setCellStyle(style2);
                        }else{
                            col7.setCellStyle(style);
                        }
    
                        HSSFCell col8 = rowi.createCell(8);
                        col8.setCellValue(third.getMonth5());
                        if(third.getMonth5() == 0){
                            col8.setCellStyle(style2);
                        }else{
                            col8.setCellStyle(style);
                        }
    
                        HSSFCell col9 = rowi.createCell(9);
                        col9.setCellValue(third.getMonth6());
                        if(third.getMonth6() == 0){
                            col9.setCellStyle(style2);
                        }else{
                            col9.setCellStyle(style);
                        }
    
                        HSSFCell col10 = rowi.createCell(10);
                        col10.setCellValue(third.getMonth7());
                        if(third.getMonth7() == 0){
                            col10.setCellStyle(style2);
                        }else{
                            col10.setCellStyle(style);
                        }
    
                        HSSFCell col11 = rowi.createCell(11);
                        col11.setCellValue(third.getMonth8());
                        if(third.getMonth8() == 0){
                            col11.setCellStyle(style2);
                        }else{
                            col11.setCellStyle(style);
                        }
    
                        HSSFCell col12 = rowi.createCell(12);
                        col12.setCellValue(third.getMonth9());
                        if(third.getMonth9() == 0){
                            col12.setCellStyle(style2);
                        }else{
                            col12.setCellStyle(style);
                        }
    
                        HSSFCell col13 = rowi.createCell(13);
                        col13.setCellValue(third.getMonth10());
                        if(third.getMonth10() == 0){
                            col13.setCellStyle(style2);
                        }else{
                            col13.setCellStyle(style);
                        }
    
                        HSSFCell col14 = rowi.createCell(14);
                        col14.setCellValue(third.getMonth11());
                        if(third.getMonth11() == 0){
                            col14.setCellStyle(style2);
                        }else{
                            col14.setCellStyle(style);
                        }
    
                        HSSFCell col15 = rowi.createCell(15);
                        col15.setCellValue(third.getMonth12());
                        if(third.getMonth12() == 0){
                            col15.setCellStyle(style2);
                        }else{
                            col15.setCellStyle(style);
                        }
    
                        HSSFCell col16 = rowi.createCell(16);
                        col16.setCellValue(third.getTotal());
                        if(third.getTotal() == 0){
                            col16.setCellStyle(style2);
                        }else{
                            col16.setCellStyle(style);
                        }
                    }
                    //记录第二级合并的步数
                    if(secondChild.getChildren().size()>1){
                        map4.put("startIndexRow",curNum);
                        map4.put("endIndexRow",secondChild.getChildren().size()+curNum-1);
                        map4.put("startIndexCol",2);
                        map4.put("endIndexCol",2);
                        stepList.add(map4);
                    }
                    curNum+=secondChild.getChildren().size();
                }
                rowNum += vo.getTotal();
            }
            //循环合并表格
            for(Map<String,Integer>map:stepList){
                sheet0.addMergedRegion(new CellRangeAddress(map.get("startIndexRow"), map.get("endIndexRow"), map.get("startIndexCol"), map.get("endIndexCol")));
            }
        }
    }
    
    
    展开全文
  • ActiveReports是一款专注于 .NET 和 .NET Core 平台的报表控件。通过拖拽式报表设计器,可以快速地设计 Excel表格Word文档、...在一些统计报表中,利用树形结构报表来实现维度钻取功能是十分常见的。通过逐级钻取.

    ActiveReports 是一款专注于 .NET 和 .NET Core 平台的报表控件。通过拖拽式报表设计器,可以快速地设计 Excel表格、Word文档、图表、数据过滤、数据钻取、精准套打等类型报表,全面满足 WinForm、ASP.NET、ASP.NET MVC、WPF 平台中各种报表的开发需要。同时,通过丰富的 API 可以灵活的实现报表创建、加载和运行时的个性化自定义需求。

    下载ActiveReports最新版本

    在一些统计报表中,利用树形结构报表来实现维度钻取功能是十分常见的。通过逐级钻取,可以快速查看更细粒度的指标数据,如项目施工进度报告等。

    使用葡萄城报表控件——ActiveReports ,即可轻松设计树形结构报表,以及设置进度条显示等功能。

    什么样的报表样式被称为树形结构报表呢?让我们先来看看“树形结构”报表的展示样式。

    了解了树形结构报表模板的样式,下面我们就来详细讲解如何使用ActiveReports 完成“基于.NET架构的动态树形结构报表”的设计步骤。

    一、绑定数据源和数据集

    动态报表与静态报表最大的区别,在于能否绑定数据源和数据集。要实现一张专业的“树形结构”报表,我们需要绑定的数据结构是什么样的呢?如下,就是典型的“树形结构”报表数据源,使用ActiveReports 链接该数据源:

    二、拖入表格组件,进行分组设计

    如下是ActiveReports 报表设计器中的截图,子分组是编号,父分组是上级编号。

    三、优化报表样式

    为了使主分组和子分组之间有一个缩进的功能,以便于更好地区分信息。这里,我们需要对边距进行设置:左边距 = 5 + (Level() * 25) & "pt"。

    其中level()代表了分组是第几级:

     

    四、添加展开、合并按钮

    这里,主要是为树形结构报表添加自分组合并和展开功能,也就是“+”、“-”按钮的功能设置。

    由于要在项目名称这里添加一个可用于“合并和展开”的按钮,所以要在可见性区域,绑定项目名称对应的文本框:TextBox4

    切换图表的样式,有如下属性:Expanded(展开)和 Collapsed(合并)

    五、显示进度条

    在此报表模板中,进度条是通过图像(image)控件来显示的。

    要显示进度条,只需拖入一个容器到table里,然后在容器里放入一个图像(image)控件。接下来进行如下设置:

    选择进度条 databar:

    调整值和颜色的设置:

    六、预览效果

    如上,一张树形结构报表就设计好了,全程基本都是通过拖拉拽的方式,无需编写一段代码,即可轻松设计报表模板,这就是ActiveReports 的魅力所在。当然,ActiveReports 的报表设计能力不仅于此,点击学习更多应用教程。

    展开全文
  • Xmind是⼀款非常专业的思维导图软件,界面友好、功能优秀、可用性极强,XMind不仅可以绘制思维导图,还能绘制鱼骨图、二维图、树形图、逻辑图、组织结构图等等,Xmind是⼀款非常专业的思维导图软件,界面友好、功能...
  • 你真的会用OneNote吗?

    万次阅读 多人点赞 2016-09-13 22:06:55
    树形目录 基本功能 总结前言使用OneNote做笔记已经有一年多的时间了,从最开始的抵触,到现在的习惯,心态的转变主要是由于软件的*周到的用户体验*。它究竟有什么特别的地方?有word已经足够了,为什么还要多打开一...

    1.前言

      使用OneNote做笔记已经有一年多的时间了,从最开始的抵触,到现在的习惯,心态的转变主要是由于软件的周到的用户体验。它究竟有什么特别的地方?有word已经足够了,为什么还要多打开一个软件?不是有为知笔记,印象笔记等等的笔记软件吗?OneNote到底有什么独特的地方呢,不要走开,我们一起来看!


    2.特色功能

    2.1图片转文字

      在工作和学习视频的时候,我们都会忍不住来几张截图,可是,仍旧不能满足我们。亦或是在百度文库中看到一篇好文,由于没有积分,怎么办?难道只能苦逼的码字吗?

      NO!将页面截图,粘在OneNote笔记中,然后在图片上右击,选择“可选文字” (PS:图片的分辨率尽量高些,模糊的图片可能错误率较高或者不能转成文字!)

    操作步骤

    效果图


    2.2TAB制表符

    2.2.1新建表格

      在笔记页面的任意位置输入文字后,TAB键即可生成表格,回车键后自动增加一行。

    2.2.2表格嵌套

      在表格中可以无限层级的插入新的表格,很适合做时间计划,活动方案等。

    表格嵌套


    2.3自动编号

      编号和自动缩进功能在word中也有,右键选择“编号”,回车键自动编号,按TAB键进行缩进编号,在最前面的双击灰色按钮即可折叠该层级。

    编号层级表示

    折叠后的效果


    2.4保存微信文稿

      在朋友圈看到的干货文章可以保存到OneNote里了。只用关注【微软云笔记】,然后按照指引关联账户,即可实现。

    保存微信文稿


    2.5树形目录

      将笔记页面进行缩进,只需将页面向右移即可,所操作页面就成为子页面了。制成了一本,于是我就在想,或许这才是OneNote分笔记本,分区,页面的真正意义所在。

    笔记页面目录


    3.基本功能


    - 自动保存,不需要手动保存,笔记自己会保存,再也不用担心电脑的突发故障了。
    - 笔记停靠在桌面,在视频做笔记的时候,我们总是会调节页面的大小,节省时间,让我们最快的投入到学习中去。
    - 自动记录页面版本,分分钟解决我们的备份问题,只用将鼠标移动到右边的页面,点击右键,选择“显示页面版本”,于是,过去的就可以回来了。
    - 列表清单,将所有待办事项列成清单,完成一项,勾掉一项。简单明了。

    OneNote基本功能


    4.总结

      我们的知识需要管理,做好知识笔记,从点滴开始;工具的使用,会使我们的效率变得更加高效;每一款工具软件,都有它的特色功能,如何高效的发挥其作用,在于你善于发现的心,要不要让自己变得高效,化繁为简,我们都可以!

    展开全文
  • 一、django建站 1.xadmin后台 2.django-hosts多域名访问 3.oss阿里云oss使用 4.ueditor编辑 5.cache数据库缓存 ...12.docxtpl生成word 13.xlwt和xlrd表格的打开和写入 14.mptt树形结构 15.op
  • 冠唐设备管理系统是一款专为设备维修及保养而设计制作的管理软件,它具有全面的设备信息分类管理、维修保养、设备相关材料管理、... 设备、配件、维修的树形分类显示和自定义搜索相结合  自动保存用户曾经录入的信息
  • 精典Dreamweaver 插件MXP

    2010-12-23 11:48:06
    此资料个人多年搜集而来,有多实用的插件。 共107个实用插件 以下是部分目录 ...树形折叠菜单插件.rar 随机显示图片.rar 替换无法显示的图片.rar 图形计数器插件.zip 等。。。。共107个实用插件。内附使用说明
  • 冠唐设备管理软件是一款功能全面,操作快捷,数据录入管理快捷的通用设备管理软件,功能包括设备信息...9,简洁的设备、配件、维修的树形分类显示和自定义搜索相结合; 10,智能记忆,自动保存用户曾经录入的信息;
  • 同上记录 文章系统,可用于企业新闻,通知等用途通讯录 通过树形目录有序管理文档相册: 企业,团队图片管理任务板 内部论坛表单: 表单,问卷工具企业根据需要可以只使用一款工具,也可以多款工具组合使用。...
  • 创新设备管理系统是一款免费好用的设备管理软件。...9、简洁的设备、配件、维修的树形分类显示和自定义搜索相结合 10、智能记忆、自动保存用户曾经录入的信息 11、维修保养的数据统计和图形分析功能
  • 个人信息管理软件

    2007-11-27 13:25:30
    8、方便的插件管理,插件以树形方式管理你文件夹、文件、网址链接以及自定义表格应用。 9、方便的通讯录管理,与计划提醒对象关联,通过通讯录可方便的发送邮件或短信。 10、方便地将手机的资料导出成Word...
  • dzzoffice-2.02.zip

    2019-06-17 11:29:49
    **文集**: 通过树形目录有序管理文档。支持 Markdown 编辑,支持导入导出 txt,epub、mobi、azw3 **相册**: 企业,团队图片管理 **任务板**: 任务管理、团队协作 **讨论板**: 内部论坛设置 **表单**: 表单,...
  • QUI试用版V3.0 quickui

    热门讨论 2014-07-14 15:50:37
    新版本框架新增了很多重要的组件,例如支持JSON的数据表格,可多选的树形下拉框,仿163邮箱的多文件异步上传控件,仿天猫商城的条件筛选组件等等。 4、使用方式的简化 通过对原有组件进行优化和重构,极大...
  • 大桌子办公DzzOffice2.01

    2018-06-19 15:10:37
    文集: 通过树形目录有序管理文档 相册: 企业,团队图片管理 任务板: 任务管理、团队协作 讨论板: 内部论坛 表单: 表单,问卷工具 企业根据需要可以只使用一款工具,也可以多款工具组合使用。例如团队需要一个...
  • 实例194 以树形显示的程序界面 259 实例195 动态按钮的窗体界面 260 第9章 窗体控制技术 262 9.1 窗体常用操作 263 实例196 以全屏方式显示程序窗体 263 实例197 通过子窗体刷新父窗体 264 实例198 拖动无边框窗体 ...
  • 主要内容有C#开发环境的使用、C#语言基础应用、字符串处理技术、数组和集合的使用、面向对象编程技术、数据...Word互操作、高效应用Excel、基本图形绘制、图像处理技术、常用图表应用、动画处理技术、音频与视频控制...
  • 实例261 将数据库数据显示到视图中 实例262 用树型列表动态显示菜单 实例263 用TreeView控件遍历磁盘目录 实例264 修改TreeView控件的节点文本 实例265 将XML文件节点绑定到TreeView控件中 11.9 选项卡控件...
  • 实例261 将数据库数据显示到视图中 实例262 用树型列表动态显示菜单 实例263 用TreeView控件遍历磁盘目录 实例264 修改TreeView控件的节点文本 实例265 将XML文件节点绑定到TreeView控件中 11.9 选项卡控件...
  • 实例261 将数据库数据显示到视图中 实例262 用树型列表动态显示菜单 实例263 用TreeView控件遍历磁盘目录 实例264 修改TreeView控件的节点文本 实例265 将XML文件节点绑定到TreeView控件中 11.9 选项卡控件...
  • WindowsFileExplorer.rar

    2019-07-18 22:47:52
    2 在资源管理器左侧展示树形目录按计算机原本的目录结构进行显示 2.1 单击+号,展开节点,显示子目录节点 2.2 单击某节点主体,在右侧的列表区域显示该节点对应的目录下的所有子目录和文件的信息,并将对象统计数目...
  • 通过json数据生成树形结构 拖拽显示为图片 点击父节点全选/取消全选子节点 禁止父节点 QTableWidget Sqlalchemy动态拼接字段查询显示表格 TableWidget嵌入部件 Containers QGroupBox QScrollArea 仿QQ...
  • 实例045 用数组设置JTable表格的列名与列宽 3.2 数组操作 实例046 数组的下标界限 实例047 按钮控件数组实现计数器界面 实例048 复选框控件数组 实例049 用数组反转字符串 3.3 数组排序与查询 实例050 使用...
  • 实例045 用数组设置JTable表格的列名与列宽 3.2 数组操作 实例046 数组的下标界限 实例047 按钮控件数组实现计数器界面 实例048 复选框控件数组 实例049 用数组反转字符串 3.3 数组排序与查询 实例050 使用...
  • 实例045 用数组设置JTable表格的列名与列宽 3.2 数组操作 实例046 数组的下标界限 实例047 按钮控件数组实现计数器界面 实例048 复选框控件数组 实例049 用数组反转字符串 3.3 数组排序与查询 实例050 使用...
  • 实例045 用数组设置JTable表格的列名与列宽 3.2 数组操作 实例046 数组的下标界限 实例047 按钮控件数组实现计数器界面 实例048 复选框控件数组 实例049 用数组反转字符串 3.3 数组排序与查询 实例050 使用...

空空如也

空空如也

1 2 3 4 5 6
收藏数 103
精华内容 41
关键字:

word树形表格