精华内容
下载资源
问答
  • 如何跨列居中
    2021-07-19 00:27:18

    语音内容:

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。

    以Excel2010为例,其跨列居中的方法是:

    1、首先打开Excel2010表格,随后选中所有标题居中且需要的单元格范围。

    2、鼠标右键选中范围,点击“设置单元格格式”,再点击“对齐”按钮。

    3、接着点击“水平对齐”下的“跨列居中”,然后再点击“确定”即可。

    4、这样就完成了在不破坏单元格的情况下完成居中。

    Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。在1993年,作为Microsoft Office的组件发布了5.0版之后,Excel就开始成为所适用操作平台上的电子制表软件的霸主。icrosoft Office最初的版本在1989年所推出,最初的运作是在苹果电脑的Macintosh平台之上。Microsoft Office自从推出文字处理、电子表格以及演示稿制作的软件后,直至近年一直居于领导地位。

    更多相关内容
  • Flutter实现Table跨行跨列
  • 主要介绍了jQuery Datatables 动态列+跨列合并实现代码,需要的朋友可以参考下
  • private void GroupColNEW(GridView gridView, int cols) { if (gridView.Rows.Count || cols > gridView.Rows[0].Cells.Count - 1) { return; } TableCell oldTc = gridView.Rows[0].Cells[cols];...
  • 在复杂的表格结构中,有的单元格在垂直方向上是跨多个单元格的,这就需要使用跨列属性COLSPAN。基本语法语法解释VALUE代表单元格跨的列数。文件范例:10-33.htm通过COLSPAN属性实现跨列的单元格。01 <!-- -------...
  • 跨列求和的计算方法 除了sumif 还有什么可以用来 跨列求和 ==> SUMPRODUCT 跨列求和的计算方法 除了sumif 还有什么可以用来 跨列求和 ==> SUMPRODUCT 跨列求和的计算方法 除了sumif 还有什么可以用来 跨列求和 ==...
  • 使用RecyclerView 实现跨列的GridView。
  • 由于按照条件提取多台服务器生成的报表数据的需要,我们很可能用到php动态生成可以跨行跨列的表格,table跨行跨列杂糅在一起经常出现不好控制,而且行列合并属性的逻辑耦合度很高,所以对于这次的需要就有了如下东西
  • EXCEL 跨列居中

    2021-12-29 22:26:50
    居中到箭头所指的位置。 先选中三个单元格,打开格式,找到对齐里的跨列居中就行。 结果:

    在这里插入图片描述
    居中到箭头所指的位置。
    先选中三个单元格,打开格式,找到对齐里的跨列居中就行。

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

    展开全文
  • 复杂JTable-跨列表头

    2018-10-09 14:22:39
    复杂JTable-跨列表头, JTable表头合并,已经测试Ok,希望对你有用
  • itextpdf 表格跨行跨列与可视化图表

    万次阅读 2021-10-08 18:04:03
    文章目录itextpdf 表格跨行跨列与可视化图表效果图普通表格一(表头背景色)普通表格二 (隔列变色)表格跨行跨列可视化图表使用示例普通表格一(表头背景色)普通表格二 (隔列变色)表格跨行跨列可视化图表工具类...

    itextpdf 表格跨行跨列与可视化图表

    效果图

    普通表格一(表头背景色)

    在这里插入图片描述

    普通表格二 (隔列变色)

    在这里插入图片描述

    表格跨行跨列

    在这里插入图片描述

    可视化图表

    饼图
    在这里插入图片描述
    柱状图
    在这里插入图片描述
    折线图
    在这里插入图片描述

    使用示例

    普通表格一(表头背景色)

    PdfUtil.addLevel2Title(doc, "对外投资信息");
    PdfUtil.Table(7, textFont, new TableDataUtil()
            .add(RowData.add("序号", "名称", "法定代表人", "注册资金", "注册号", "成立日期", "地址"))
            .addList(GetData.get(desensitization, result, Compoent.INVESTMENTLIST, "NO", "InvestName", "Legal", "RegCapital", "EntRegNo", "EstDate", "RegAddress"))
            .toList(), doc);
    

    普通表格二 (隔列变色)

    PdfUtil.addLevel2Title(doc, "社保基本信息");
    PdfUtil.TableBuleColspan(4, textFont, new TableDataUtil()
            .add(RowData.add("社保单位编号", GetData.get(result, Compoent.INHFSOCIALSECURITY, "SocialSecurityNo", desensitization), "投保起始年", GetData.get(result, Compoent.INHFSOCIALSECURITY, "InsuredYear")))
            .add(RowData.add("投保起始月", GetData.get(result, Compoent.INHFSOCIALSECURITY, "InsuredMonth"), "当前状态", GetData.get(result, Compoent.INHFSOCIALSECURITY, "CurrentState")))
            .add(RowData.add("参保总人数", GetData.get(result, Compoent.INHFSOCIALSECURITY, "TotalCNT"), "养老参保人数", GetData.get(result, Compoent.INHFSOCIALSECURITY, "EICNT")))
            .add(RowData.add("医疗参保人数", GetData.get(result, Compoent.INHFSOCIALSECURITY, "MICNT"), "工伤参保人数", GetData.get(result, Compoent.INHFSOCIALSECURITY, "IICNT")))
            .add(RowData.add("失业参保人数", GetData.get(result, Compoent.INHFSOCIALSECURITY, "UICNT")))
            .toList(), doc, new int[]{5}, new int[]{2}, new int[]{3});
    

    表格跨行跨列

    PdfUtil.TableBlueColRowSpan(4, textFont, new TableDataUtil()
            .add(RowData.add("科目", "报表年份"))
            .add(balanceSheetKeys)
            .addList(RowData.add(balanceSheetDataGroup, (data) -> {
                List<List<String>> res = new ArrayList<>();
                data.forEach((k, v) -> {
                    List<String> row = new ArrayList<>();
                    row.add(k);
                    Map<String, String> kv = v.stream().collect(Collectors.toMap(key -> String.valueOf(key.get("PeriodYear")), value -> String.valueOf(value.get("ClosingBalanceAsset"))));
                    balanceSheetKeysGroup.keySet().forEach(i -> {
                        row.add(Optional.ofNullable(kv.get(i)).orElse(""));
                    });
                    if (row.size() < 4) {
                        for (int i = row.size() - 1; i < 3; i++) {
                            row.add("");
                        }
                    }
                    res.add(row);
                });
                return res;
            }))
            .toList(), doc, new int[][]{{1}, {1}}, new int[][]{{2}, {1}}, new int[][]{{3}, {2}});
    

    可视化图表

    饼图

    PdfPTable table = new PdfPTable(2);
    table.setTotalWidth(530);
    table.setLockedWidth(true);
    
    PdfPCell leftImage = new PdfPCell();
    
    bos = new ByteArrayOutputStream();
    ChartUtils.writeChartAsJPEG(bos, ChartUtil.pieChart(String.join("", balanceSheetChartDataGroup.keySet()) + "资产结构", balanceSheetPieData), 400, 400);
    image = Image.getInstance(bos.toByteArray());
    image.scalePercent(60);
    leftImage.addElement(image);
    leftImage.disableBorderSide(-1);
    table.addCell(leftImage);
    

    柱状图

    imageBaos = new ByteArrayOutputStream();
    ChartUtils.writeChartAsJPEG(imageBaos, ChartUtil.barChart("", "", "", balanceSheetBarChartDataset, "{2}%"), 850, 330);
    chartImage = Image.getInstance(imageBaos.toByteArray());
    chartImage.scalePercent(60);
    doc.add(chartImage);
    

    折线图

    ChartUtils.writeChartAsJPEG(imageBaos, ChartUtil.lineChart("用水量(立方)", "", "", waterLineDataset, CategoryLabelPositions.UP_90), 850, 430);
    chartImage = Image.getInstance(imageBaos.toByteArray());
    chartImage.scalePercent(60);
    doc.add(chartImage);
    

    工具类源码

    依赖包

    • itextpdf 5.5.6
    • jfreechart 1.5.3

    大家根据实际使用场景删除代码

    PdfUtil

    static class PdfUtil {
        public static void addLevel1Title(Document doc, String title) throws DocumentException {
            Paragraph p1 = new Paragraph(title, secondTitleFont);
            p1.setAlignment(Element.ALIGN_CENTER);
            doc.add(p1);
        }
    
        public static void addLevel2Title(Document doc, String title) throws DocumentException {
            Paragraph p1 = new Paragraph(title, threeTitleFont);
            p1.setAlignment(Element.ALIGN_LEFT);
            p1.setSpacingAfter(8);
            doc.add(p1);
        }
    
        public static void addOtherContent(Document doc, String content, int alignment, Font fontSize, float spacingAfter) throws DocumentException {
            Paragraph p1 = new Paragraph(content, fontSize);
            p1.setAlignment(alignment);
            p1.setSpacingAfter(spacingAfter);
            doc.add(p1);
        }
    
        public static void addLevel2Title(Document doc, String title, boolean newPage) throws DocumentException {
            doc.newPage();
            Paragraph p1 = new Paragraph(title, threeTitleFont);
            p1.setAlignment(Element.ALIGN_LEFT);
            p1.setSpacingAfter(8);
            doc.add(p1);
        }
    
        /**
         * 生成一个表格
         *
         * @param total    总列数
         * @param textFont 字体
         * @param data     表格数据     X行    Y列
         * @param doc      PDF文档对象
         * @throws DocumentException
         * @author hou_fx
         */
        public static void Table(int total, Font textFont, List<List<String>> data, Document doc) throws DocumentException {
            // 创建一个有N列的表格
            PdfPTable table = new PdfPTable(total);
            table.setPaddingTop(20);
            table.setSpacingAfter(20);
            table.setTotalWidth(530); //设置列宽
            table.setLockedWidth(true); //锁定列宽
            PdfPCell cell;
            for (int i = 0; i < data.size(); i++) {  //遍历数据行   每个数据行都是一个list
                Iterator<String> it = data.get(i).iterator();
                while (it.hasNext()) {               //遍历每行数据,每个数据都是一个单元格
                    String text = it.next();
                    cell = new PdfPCell(new Phrase(text, textFont));
                    //表头背景色
                    if (i == 0) {
                        cell = new PdfPCell(new Phrase(text, textFontBold));
                        cell.setBackgroundColor(new BaseColor(199, 217, 241));
                    }
                    cell.setMinimumHeight(17); //设置单元格高度
                    cell.setUseAscender(true); //设置可以居中
    
                    cell.setHorizontalAlignment(i == 0 ? Element.ALIGN_CENTER : Element.ALIGN_LEFT); //表头居中,其余左对齐
                    cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //设置垂直居中
                    table.addCell(cell);
                }
            }
            doc.add(table);
        }
    
        public static void TableNoAfter(int total, Font textFont, List<List<String>> data, Document doc) throws DocumentException {
            // 创建一个有N列的表格
            PdfPTable table = new PdfPTable(total);
            table.setPaddingTop(20);
            table.setTotalWidth(530); //设置列宽
            table.setLockedWidth(true); //锁定列宽
            PdfPCell cell;
            for (int i = 0; i < data.size(); i++) {  //遍历数据行   每个数据行都是一个list
                Iterator<String> it = data.get(i).iterator();
                while (it.hasNext()) {               //遍历每行数据,每个数据都是一个单元格
                    String text = it.next();
                    cell = new PdfPCell(new Phrase(text, textFont));
                    //表头背景色
                    if (i == 0) {
                        cell = new PdfPCell(new Phrase(text, textFontBold));
                        cell.setBackgroundColor(new BaseColor(199, 217, 241));
                    }
                    cell.setMinimumHeight(17); //设置单元格高度
                    cell.setUseAscender(true); //设置可以居中
    
                    cell.setHorizontalAlignment(i == 0 ? Element.ALIGN_CENTER : Element.ALIGN_LEFT); //表头居中,其余左对齐
                    cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //设置垂直居中
                    table.addCell(cell);
                }
            }
            doc.add(table);
        }
    
        public static void TableNoPadding(int total, Font textFont, List<List<String>> data, Document doc) throws DocumentException {
            // 创建一个有N列的表格
            PdfPTable table = new PdfPTable(total);
            table.setTotalWidth(530); //设置列宽
            table.setLockedWidth(true); //锁定列宽
            PdfPCell cell;
            for (int i = 0; i < data.size(); i++) {  //遍历数据行   每个数据行都是一个list
                Iterator<String> it = data.get(i).iterator();
                while (it.hasNext()) {               //遍历每行数据,每个数据都是一个单元格
                    String text = it.next();
                    cell = new PdfPCell(new Phrase(text, textFont));
                    cell.setMinimumHeight(17); //设置单元格高度
                    cell.setUseAscender(true); //设置可以居中
                    cell.setHorizontalAlignment(Element.ALIGN_LEFT); //表头居中,其余左对齐
                    cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //设置垂直居中
                    table.addCell(cell);
                }
            }
            doc.add(table);
        }
    
        public static void TableNoPaddingTop(int total, Font textFont, List<List<String>> data, Document doc) throws DocumentException {
            // 创建一个有N列的表格
            PdfPTable table = new PdfPTable(total);
            table.setPaddingTop(0.0f);
            table.setSpacingAfter(0.0f);
            table.setTotalWidth(530); //设置列宽
            table.setLockedWidth(true); //锁定列宽
            PdfPCell cell;
            for (int i = 0; i < data.size(); i++) {  //遍历数据行   每个数据行都是一个list
                Iterator<String> it = data.get(i).iterator();
                while (it.hasNext()) {               //遍历每行数据,每个数据都是一个单元格
                    String text = it.next();
                    cell = new PdfPCell(new Phrase(text, textFont));
                    if (i == 0) {
                        cell = new PdfPCell(new Phrase(text, textFontBold));
                        cell.setBackgroundColor(new BaseColor(199, 217, 241));
                    }
                    cell.setMinimumHeight(17); //设置单元格高度
    
                    cell.setUseAscender(true); //设置可以居中
                    //表头背景色
    
                    cell.setHorizontalAlignment(i == 0 ? Element.ALIGN_CENTER : Element.ALIGN_LEFT); //表头居中,其余左对齐
                    cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //设置垂直居中
                    table.addCell(cell);
                }
            }
            doc.add(table);
        }
    
        public static int appearNumber(String srcText, String findText) {
            int count = 0;
            Pattern p = Pattern.compile(findText);
            Matcher m = p.matcher(srcText);
            while (m.find()) {
                count++;
            }
            return count;
        }
    
        /**
         * 生成一个表格
         *
         * @param total    总列数
         * @param textFont 字体
         * @param data     表格数据     X行    Y列
         * @param doc      PDF文档对象
         * @throws DocumentException
         * @author hou_fx
         */
        public static void TableBule(int total, Font textFont, List<List<String>> data, Document doc) throws DocumentException {
            // 创建一个有N列的表格
            PdfPTable table = new PdfPTable(total);
            table.setPaddingTop(20);
            table.setSpacingAfter(20);
            table.setTotalWidth(530); //设置列宽
            table.setLockedWidth(true); //锁定列宽
            PdfPCell cell;
            for (int i = 0; i < data.size(); i++) {  //遍历数据行   每个数据行都是一个list
                int count = 0;
                for (int j = 0; j < data.get(i).size(); j++) {
                    cell = new PdfPCell(new Phrase(data.get(i).get(j), textFont));
                    //第一个单元格背景色
                    if (count % 2 == 0) {
                        cell = new PdfPCell(new Phrase(data.get(i).get(j), textFontBold));
                        cell.setBackgroundColor(new BaseColor(199, 217, 241));
                    }
                    cell.setMinimumHeight(17); //设置单元格高度
                    cell.setUseAscender(true); //设置可以居中
    
                    cell.setHorizontalAlignment(Element.ALIGN_LEFT); //左对齐
                    cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //设置垂直居中
                    table.addCell(cell);
                    count++;
                }
            }
            doc.add(table);
        }
    
    
        /**
         * 生成一个表格
         *
         * @param total    总列数
         * @param textFont 字体
         * @param data     表格数据     X行    Y列
         * @param doc      PDF文档对象
         * @param colspan  第几列
         * @param rowspan  第几行
         * @param number   跨几列
         * @throws DocumentException
         * @author hou_fx
         */
        public static void TableBuleColspan(int total, Font textFont, List<List<String>> data, Document doc, int[] rowspan, int[] colspan, int[] number) throws DocumentException {
            // 创建一个有N列的表格
            PdfPTable table = new PdfPTable(total);
            table.setPaddingTop(20);
            table.setSpacingAfter(20);
            table.setTotalWidth(530); //设置列宽
            table.setLockedWidth(true); //锁定列宽
            PdfPCell cell;
            //数组下标
            int cos = 0;
            for (int i = 0; i < data.size(); i++) {  //遍历数据行   每个数据行都是一个list
                int count = 0;
                for (int j = 0; j < data.get(i).size(); j++) {
                    cell = new PdfPCell(new Phrase(data.get(i).get(j), textFont));
                    //第一个单元格背景色
                    if (j % 2 == 0) {
                        cell = new PdfPCell(new Phrase(data.get(i).get(j), textFontBold));
                        cell.setBackgroundColor(new BaseColor(199, 217, 241)); //173,216,230
                    }
                    cell.setMinimumHeight(17); //设置单元格高度
                    cell.setUseAscender(true); //设置可以居中
    
                    if (cos < rowspan.length && i == rowspan[cos] - 1 && count == colspan[cos] - 1) {
                        cell.setColspan(number[cos]);//跨单元格
                        cos++;
                    }
                    cell.setHorizontalAlignment(Element.ALIGN_LEFT); //左对齐
                    cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //设置垂直居中
                    table.addCell(cell);
                    count++;
                }
            }
            doc.add(table);
        }
    
        /**
         * 生成一个表格
         *
         * @param total    总列数
         * @param textFont 字体
         * @param data     表格数据     X行    Y列
         * @param doc      PDF文档对象
         * @param colspan  第几列 [][] 0 跨列 1 跨行
         * @param rowspan  第几行 [][] 0 跨列 1 跨行
         * @param number   跨几列 [][] 0 跨列 1 跨行
         * @throws DocumentException
         * @author hou_fx
         */
        public static void TableBlueColRowSpan(int total, Font textFont, List<List<String>> data, Document doc, int[][] rowspan, int[][] colspan, int[][] number) throws DocumentException {
            // 创建一个有N列的表格
            PdfPTable table = new PdfPTable(total);
            table.setPaddingTop(20);
            table.setSpacingAfter(20);
            table.setTotalWidth(530); //设置列宽
            table.setLockedWidth(true); //锁定列宽
            PdfPCell cell;
            for (int i = 0, cos = 0, ros = 0; i < data.size(); i++) {
                for (int j = 0; j < data.get(i).size(); j++) {
                    cell = new PdfPCell(new Phrase(data.get(i).get(j), textFont));
                    if (total != data.get(i).size()) {
                        cell = new PdfPCell(new Phrase(data.get(i).get(j), textFontBold));
                        cell.setBackgroundColor(new BaseColor(199, 217, 241)); //173,216,230
                    }
                    if (data.get(i).get(j).contains("合计") || data.get(i).get(j).contains("总计")) {
                        cell.setBackgroundColor(new BaseColor(79, 129, 189)); //173,216,230
                    }
                    cell.setMinimumHeight(17); //设置单元格高度
                    cell.setUseAscender(true); //设置可以居中
                    cell.setHorizontalAlignment(Element.ALIGN_CENTER); //左对齐
                    cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //设置垂直居中
    
                    if (cos < rowspan[0].length && i == rowspan[0][cos] - 1 && j == colspan[0][cos] - 1) {
                        cell.setColspan(number[0][cos]);
                        cos++;
                    }
    
                    if (ros < rowspan[1].length && i == rowspan[1][ros] - 1 && j == colspan[1][ros] - 1) {
                        cell.setRowspan(number[1][ros]);
                        ros++;
                    }
    
                    table.addCell(cell);
                }
            }
            doc.add(table);
        }
    
    
        /**
         * 生成一个表格
         *
         * @param total    总列数
         * @param textFont 字体
         * @param data     表格数据     X行    Y列
         * @param doc      PDF文档对象
         * @param colspan  第几列
         * @param rowspan  第几行
         * @param number   跨几列
         * @throws DocumentException
         * @author hou_fx
         */
        public static void TableColspan(int total, Font textFont, List<List<String>> data, Document doc, int[] rowspan, int[] colspan, int[] number) throws DocumentException {
            // 创建一个有N列的表格
            PdfPTable table = new PdfPTable(total);
            table.setPaddingTop(20);
            table.setSpacingAfter(20);
            table.setTotalWidth(530); //设置列宽
            table.setLockedWidth(true); //锁定列宽
            PdfPCell cell;
            //数组下标
            int cos = 0;
            for (int i = 0; i < data.size(); i++) {  //遍历数据行   每个数据行都是一个list
                Iterator<String> it = data.get(i).iterator();
                int count = 0;
                while (it.hasNext()) {               //遍历每行数据,每个数据都是一个单元格
                    cell = new PdfPCell(new Phrase(it.next(), textFont));
                    cell.setMinimumHeight(17); //设置单元格高度
                    cell.setUseAscender(true); //设置可以居中
                    if (cos < rowspan.length && i == rowspan[cos] - 1 && count == colspan[cos] - 1) {
                        cell.setColspan(number[cos]);//跨单元格
                        cos++;
                    }
                    cell.setHorizontalAlignment(Element.ALIGN_LEFT);
                    cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //设置垂直居中
                    table.addCell(cell);
                    count++;
                }
            }
            doc.add(table);
        }
    
        public static void TableColspanNo(int total, Font textFont, List<List<String>> data, Document doc, int[] rowspan, int[] colspan, int[] number) throws DocumentException {
            // 创建一个有N列的表格
            PdfPTable table = new PdfPTable(total);
            //设置列宽
            table.setTotalWidth(530);
            //锁定列宽
            table.setLockedWidth(true);
            PdfPCell cell;
            //数组下标
            int cos = 0;
            for (int i = 0; i < data.size(); i++) {  //遍历数据行   每个数据行都是一个list
                Iterator<String> it = data.get(i).iterator();
                int count = 0;
                while (it.hasNext()) {               //遍历每行数据,每个数据都是一个单元格
                    cell = new PdfPCell(new Phrase(it.next(), textFont));
                    cell.setMinimumHeight(17); //设置单元格高度
                    cell.setUseAscender(true); //设置可以居中
                    if (cos < rowspan.length && i == rowspan[cos] - 1 && count == colspan[cos] - 1) {
                        cell.setColspan(number[cos]);//跨单元格
                        cos++;
                    }
                    cell.setHorizontalAlignment(Element.ALIGN_LEFT);
                    cell.setVerticalAlignment(Element.ALIGN_MIDDLE); //设置垂直居中
                    table.addCell(cell);
                    count++;
                }
            }
            doc.add(table);
        }
    }
    

    GetData

    static class GetData {
        private final static Map<String, String> desensitizationData = new LinkedHashMap<>();
    
        static {
            desensitizationData.put("EntName", "深圳******有限公司");
            desensitizationData.put("RegAddress", "深圳市**区******");
            desensitizationData.put("SocialCreditCode", "9***************1");
            desensitizationData.put("ESocialCreditCode", "9***************1");
            desensitizationData.put("EntRegNo", "1*******0");
            desensitizationData.put("Legal", "***");
            desensitizationData.put("EntOrgCode", "1********0");
            desensitizationData.put("ShareholderName", "***");
            desensitizationData.put("FDDBRXM", "***");
            desensitizationData.put("FDDBRSFZJHM", "440**************2");
            desensitizationData.put("FDDBRGDDH", "0755-*******");
            desensitizationData.put("FDDBRYDDH", "13********0");
            desensitizationData.put("MemberName", "***");
            desensitizationData.put("InvestName", "深圳******有限公司");
            desensitizationData.put("ChangeItem", "***变更");
            desensitizationData.put("ChangeBefore", "*****");
            desensitizationData.put("ChangeAfter", "********");
            desensitizationData.put("AccFundNo", "10*******3");
            desensitizationData.put("SocialSecurityNo", "1******0");
            desensitizationData.put("RestrictDesc", "******");
            desensitizationData.put("PatentName", "******");
            desensitizationData.put("PubNo", "******");
            desensitizationData.put("WorkName", "******");
            desensitizationData.put("RegNum", "******");
            desensitizationData.put("TrademarkName", "******");
            desensitizationData.put("RregCode", "******");
            desensitizationData.put("LicenseNo", "******");
            desensitizationData.put("CaseReason", "******");
            desensitizationData.put("CaseNo", "******");
            desensitizationData.put("CaseName", "******");
            desensitizationData.put("PunishContent", "******");
            desensitizationData.put("ViolationCaseNo", "*********");
            desensitizationData.put("projectName", "*********");
            desensitizationData.put("WebSite", "*********");
            desensitizationData.put("Tel", "*********");
            desensitizationData.put("Phone", "*********");
            desensitizationData.put("IDNo", "*********");
            desensitizationData.put("CaseCode", "*********");
    
        }
    
        public static String get(Map map, Compoent compoent, String key) {
            List data = Optional.ofNullable((List) map.get(compoent.getValue())).orElse(new ArrayList<>());
            IMap imap = new IMap();
    
            if (data.size() > 0) {
                if (data.get(0) instanceof JSONObject) {
                    ((JSONObject) data.get(0)).forEach(imap::put);
                }
            }
    
            return Optional.ofNullable(imap.get(key)).orElse("-");
        }
    
        public static String get(Map map, Compoent compoent, String key, boolean desensitization) {
            List data = Optional.ofNullable((List) map.get(compoent.getValue())).orElse(new ArrayList<>());
            IMap imap = new IMap();
    
            if (data.size() > 0) {
                if (data.get(0) instanceof JSONObject) {
                    if (desensitization) {
                        ((JSONObject) data.get(0)).forEach((k, v) -> {
                            String s = String.valueOf(v);
                            imap.put(k, desensitizationData.getOrDefault(k, s));
                        });
                    } else {
                        ((JSONObject) data.get(0)).forEach(imap::put);
                    }
                }
            }
            return Optional.ofNullable(imap.get(key)).orElse("-");
        }
    
        public static List<List<String>> get(Map result, Compoent compoent, String... keys) {
            List<List<String>> res = new ArrayList<>();
            Optional.ofNullable(result.get(compoent.getValue())).ifPresent(v -> {
                if (v instanceof ArrayList) {
                    ((ArrayList) v).forEach(o -> {
                        List<String> data = new ArrayList<>();
                        JSONObject item = ((JSONObject) o);
                        for (String key : keys) {
                            data.add(StringUtils.isEmpty(item.getString(key)) ? "-" : item.getString(key));
                        }
                        res.add(data);
                    });
                }
            });
            if (res.size() == 0) {
                List<String> data = new ArrayList<>();
                for (int i = 0; i < keys.length; i++) {
                    data.add("");
                }
                res.add(data);
            }
            return res;
        }
    
        public static List<List<String>> get(Boolean desensitization, Map result, Compoent compoent, String... keys) {
            List<List<String>> res = new ArrayList<>();
            Optional.ofNullable(result.get(compoent.getValue())).ifPresent(v -> {
                if (v instanceof ArrayList) {
                    ((ArrayList) v).forEach(o -> {
                        List<String> data = new ArrayList<>();
                        JSONObject item = ((JSONObject) o);
                        for (String key : keys) {
                            if (desensitization) {
                                data.add(StringUtils.isEmpty(item.getString(key)) ? "-" : desensitizationData.get(key) == null ? item.getString(key) : desensitizationData.get(key));
                            } else {
                                data.add(StringUtils.isEmpty(item.getString(key)) ? "-" : item.getString(key));
                            }
                        }
                        res.add(data);
                    });
                }
            });
            if (res.size() == 0) {
                List<String> data = new ArrayList<>();
                for (int i = 0; i < keys.length; i++) {
                    data.add("");
                }
                res.add(data);
            }
            return res;
        }
    
        public static List<List<String>> get(Map result, Predicate<JSONObject> predicate, Compoent compoent, String... keys) {
            List<List<String>> res = new ArrayList<>();
            Optional.ofNullable(result.get(compoent.getValue())).ifPresent(v -> {
                if (v instanceof ArrayList) {
                    ((ArrayList) v).stream().filter(predicate).forEach(o -> {
                        List<String> data = new ArrayList<>();
                        JSONObject item = ((JSONObject) o);
                        for (String key : keys) {
                            data.add(StringUtils.isEmpty(item.getString(key)) ? "-" : item.getString(key));
                        }
                        if (data.size() == 0) {
                            List<String> row = new ArrayList<>();
                            for (int i = 0; i < keys.length; i++) {
                                row.add("");
                            }
                            data.addAll(row);
                        }
                        res.add(data);
                    });
                }
            });
    
            return res;
        }
    
        public static List<Map> getListMap(Map result, Compoent compoent, String... keys) {
            List<Map> data = new ArrayList<>();
            Optional.ofNullable(result.get(compoent.getValue())).ifPresent(v -> {
                if (v instanceof ArrayList) {
                    ((ArrayList) v).forEach(o -> {
                        JSONObject item = ((JSONObject) o);
                        Map map = new LinkedHashMap(16);
                        for (String key : keys) {
                            map.put(key, StringUtils.isEmpty(item.getString(key)) ? "-" : item.getString(key));
                        }
                        data.add(map);
                    });
                }
            });
            return data;
        }
    }
    

    RowData

    static class RowData {
        public static List<String> add(String... cells) {
            return Arrays.asList(cells);
        }
    
        public static List<String> add(String cells, List<String> datas) {
            datas.add(0, cells);
            return datas;
        }
    
        public static List<String> add(String cells, Map<String, String> data, Function<Map<String, String>, List<String>> func) {
            List<String> res = func.apply(data);
            res.add(0, cells);
            return res;
        }
    
        public static List<List<String>> add(Map<String, List<Map>> data, Function<Map<String, List<Map>>, List<List<String>>> func) {
            List<List<String>> res = func.apply(data);
            return res;
        }
    }
    

    TableDataUtil

    static class TableDataUtil {
        public List<List<String>> data = new ArrayList<>();
    
        public TableDataUtil add(List<String> rowData) {
            if (rowData != null && rowData.size() > 0) {
                data.add(rowData);
            }
            return this;
        }
    
        public TableDataUtil addList(List<List<String>> rowData) {
            data.addAll(rowData);
            return this;
        }
    
        public List<List<String>> toList() {
            return data;
        }
    
        public TableDataUtil add(Map<String, List<Map>> data, Function<Map<String, List<Map>>, List<List<String>>> res) {
            this.data.addAll(res.apply(data));
            return this;
        }
    }
    

    ChartUtil

    static class ChartUtil {
    
        private static final Color[] BAR_COLORS = new Color[]{
                new Color(79, 129, 189),
                new Color(192, 80, 77),
                new Color(155, 187, 89),
                new Color(128, 100, 162),
                new Color(75, 172, 198),
                new Color(247, 150, 70),
                new Color(119, 44, 42),
                new Color(77, 59, 98),
                new Color(182, 87, 8),
        };
    
        private static final Color[] LINE_COLORS = new Color[]{
                new Color(90, 154, 213),
                new Color(237, 123, 46),
                new Color(155, 187, 89),
        };
    
        private static final Color[] PIE_COLORS = new Color[]{
                new Color(79, 129, 189),
                new Color(192, 80, 77),
                new Color(155, 187, 89),
                new Color(128, 100, 162),
                new Color(75, 172, 198),
                new Color(247, 150, 70),
                new Color(119, 44, 42),
                new Color(77, 59, 98),
                new Color(182, 87, 8),
        };
    
    
        private static StandardChartTheme initChartTheme() {
            StandardChartTheme currentTheme = new StandardChartTheme("JFree");
            currentTheme.setLargeFont(new java.awt.Font("宋体", java.awt.Font.BOLD, 15));
            currentTheme.setRegularFont(new java.awt.Font("宋体", java.awt.Font.PLAIN, 13));
            currentTheme.setExtraLargeFont(new java.awt.Font("宋体", java.awt.Font.BOLD, 20));
            currentTheme.setPlotBackgroundPaint(new Color(255, 255, 204, 0));
            currentTheme.setPlotOutlinePaint(new Color(0, 0, 0, 0));
            currentTheme.setRangeGridlinePaint(new Color(78, 74, 74));
            return currentTheme;
        }
    
        /**
         * 线图
         *
         * @param title             标题
         * @param categoryAxisLabel 分类标签
         * @param valueAxisLabel    数值标签
         * @param dataset           数据集
         * @return org.jfree.chart.JFreeChart
         * @author Hou_fx
         * @date 2021.8.4 10:39
         */
        public static JFreeChart lineChart(String title, String categoryAxisLabel, String valueAxisLabel, DefaultCategoryDataset dataset) {
            ChartFactory.setChartTheme(initChartTheme());
    
            JFreeChart chart = ChartFactory.createLineChart(
                    title,
                    categoryAxisLabel,
                    valueAxisLabel,
                    dataset,
                    PlotOrientation.VERTICAL,
                    true,
                    true,
                    false
            );
    
            CategoryPlot plot = chart.getCategoryPlot();
            LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
            renderer.setDefaultItemLabelsVisible(true);
            renderer.setDefaultItemLabelGenerator(new StandardCategoryItemLabelGenerator());
            for (int i = 0; i < dataset.getRowKeys().size(); i++) {
                if (i > LINE_COLORS.length - 1) {
                    renderer.setSeriesPaint(i, new Color(RandomUtils.nextInt(110, 200), RandomUtils.nextInt(110, 200), RandomUtils.nextInt(110, 200)));
                } else {
                    renderer.setSeriesPaint(i, LINE_COLORS[i]);
                }
            }
            return chart;
        }
    
        public static JFreeChart lineChart(String title, String categoryAxisLabel, String valueAxisLabel, DefaultCategoryDataset dataset, CategoryLabelPositions position) {
            ChartFactory.setChartTheme(initChartTheme());
    
            JFreeChart chart = ChartFactory.createLineChart(
                    title,
                    categoryAxisLabel,
                    valueAxisLabel,
                    dataset,
                    PlotOrientation.VERTICAL,
                    true,
                    true,
                    false
            );
    
            CategoryPlot plot = chart.getCategoryPlot();
            plot.getDomainAxis().setCategoryLabelPositions(position);
            LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
            renderer.setDefaultItemLabelsVisible(true);
            renderer.setDefaultItemLabelGenerator(new StandardCategoryItemLabelGenerator());
            for (int i = 0; i < dataset.getRowKeys().size(); i++) {
                if (i > LINE_COLORS.length - 1) {
                    renderer.setSeriesPaint(i, new Color(RandomUtils.nextInt(110, 200), RandomUtils.nextInt(110, 200), RandomUtils.nextInt(110, 200)));
                } else {
                    renderer.setSeriesPaint(i, LINE_COLORS[i]);
                }
            }
            return chart;
        }
    
        /**
         * 柱状图
         *
         * @param title
         * @param categoryAxisLabel
         * @param valueAxisLabel
         * @param dataset           数据集
         * @return org.jfree.chart.JFreeChart
         * @author Hou_fx
         * @date 2021.8.4 14:03
         */
        public static JFreeChart barChart(String title, String categoryAxisLabel, String valueAxisLabel, DefaultCategoryDataset dataset) {
            ChartFactory.setChartTheme(initChartTheme());
            JFreeChart chart = ChartFactory.createBarChart(
                    title,
                    categoryAxisLabel,
                    valueAxisLabel,
                    dataset,
                    PlotOrientation.VERTICAL,
                    true,
                    true,
                    false
            );
            CategoryPlot plot = chart.getCategoryPlot();
            BarRenderer renderer = (BarRenderer) plot.getRenderer();
            renderer.setBarPainter(new StandardBarPainter());
            renderer.setDefaultItemLabelsVisible(true);
            renderer.setDefaultItemLabelGenerator(new StandardCategoryItemLabelGenerator());
            renderer.setItemMargin(0.0);
    
            for (int i = 0; i < dataset.getRowKeys().size(); i++) {
                if (i > BAR_COLORS.length - 1) {
                    renderer.setSeriesPaint(i, new Color(RandomUtils.nextInt(110, 200), RandomUtils.nextInt(110, 200), RandomUtils.nextInt(110, 200)));
                } else {
                    renderer.setSeriesPaint(i, BAR_COLORS[i]);
                }
            }
            return chart;
        }
    
        public static JFreeChart barChart2(String title, String categoryAxisLabel, String valueAxisLabel, DefaultCategoryDataset dataset, DefaultCategoryDataset dataset2, String format2) {
            ChartFactory.setChartTheme(initChartTheme());
            JFreeChart chart = ChartFactory.createBarChart(
                    title,
                    categoryAxisLabel,
                    valueAxisLabel,
                    dataset,
                    PlotOrientation.VERTICAL,
                    true,
                    true,
                    false
            );
            CategoryPlot plot = chart.getCategoryPlot();
            NumberAxis axis = new NumberAxis();
            axis.setNumberFormatOverride(new DecimalFormat("#,##%"));
            plot.setRangeAxis(1, axis);
            plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
            plot.setDataset(1, dataset2);
            plot.mapDatasetToRangeAxis(1, 1);
            BarRenderer renderer2 = new BarRenderer();
            renderer2.setSeriesPaint(0, new Color(238, 8, 8, 0));
            renderer2.setDefaultItemLabelsVisible(true);
            renderer2.setDefaultItemLabelGenerator(new StandardCategoryItemLabelGenerator(format2, NumberFormat.getInstance()));
            ItemLabelPosition position1 = new ItemLabelPosition(ItemLabelAnchor.INSIDE12, TextAnchor.TOP_RIGHT);
            renderer2.setDefaultPositiveItemLabelPosition(position1);
            plot.setRenderer(1, renderer2);
    
            BarRenderer renderer = (BarRenderer) plot.getRenderer();
            renderer.setBarPainter(new StandardBarPainter());
            renderer.setDefaultItemLabelsVisible(true);
            renderer.setDefaultItemLabelGenerator(new StandardCategoryItemLabelGenerator());
            renderer.setItemMargin(0.0);
    
            for (int i = 0; i < dataset.getRowKeys().size(); i++) {
                if (i > BAR_COLORS.length - 1) {
                    renderer.setSeriesPaint(i, new Color(RandomUtils.nextInt(110, 200), RandomUtils.nextInt(110, 200), RandomUtils.nextInt(110, 200)));
                } else {
                    renderer.setSeriesPaint(i, BAR_COLORS[i]);
                }
            }
            return chart;
        }
    
        public static JFreeChart barChart(String title, String categoryAxisLabel, String valueAxisLabel, DefaultCategoryDataset dataset, String format) {
            ChartFactory.setChartTheme(initChartTheme());
    
            JFreeChart chart = ChartFactory.createBarChart(
                    title,
                    categoryAxisLabel,
                    valueAxisLabel,
                    dataset,
                    PlotOrientation.VERTICAL,
                    true,
                    true,
                    false
            );
    
            CategoryPlot plot = chart.getCategoryPlot();
            BarRenderer renderer = (BarRenderer) plot.getRenderer();
            renderer.setBarPainter(new StandardBarPainter());
            renderer.setDefaultItemLabelsVisible(true);
            renderer.setDefaultItemLabelGenerator(new StandardCategoryItemLabelGenerator(format, NumberFormat.getInstance()));
            renderer.setItemMargin(0.0);
    
            for (int i = 0; i < dataset.getRowKeys().size(); i++) {
                if (i > BAR_COLORS.length - 1) {
                    renderer.setSeriesPaint(i, new Color(RandomUtils.nextInt(110, 200), RandomUtils.nextInt(110, 200), RandomUtils.nextInt(110, 200)));
                } else {
                    renderer.setSeriesPaint(i, BAR_COLORS[i]);
                }
            }
            return chart;
        }
    
        /**
         * 饼图
         *
         * @param title
         * @param dataset
         * @return org.jfree.chart.JFreeChart
         * @author Hou_fx
         * @date 2021.8.4 14:04
         */
        public static JFreeChart pieChart(String title, DefaultPieDataset<String> dataset) {
            ChartFactory.setChartTheme(initChartTheme());
    
            JFreeChart chart = ChartFactory.createPieChart(
                    title,
                    dataset,
                    true,
                    true,
                    false
            );
            PiePlot plot = (PiePlot) chart.getPlot();
            for (int i = 0; i < dataset.getKeys().size(); i++) {
                if (i > PIE_COLORS.length - 1) {
                    plot.setSectionPaint(dataset.getKey(i), new Color(RandomUtils.nextInt(110, 200), RandomUtils.nextInt(110, 200), RandomUtils.nextInt(110, 200)));
                } else {
                    plot.setSectionPaint(dataset.getKey(i), PIE_COLORS[i]);
                }
            }
            plot.setDefaultSectionOutlinePaint(new Color(255, 255, 255));
            plot.setDefaultSectionOutlineStroke(new BasicStroke(3));
            //plot.setLabelLinkPaint(new Color(255, 255, 255, 0));
            plot.setLabelBackgroundPaint(new Color(255, 255, 255, 0));
            plot.setLabelOutlinePaint(new Color(255, 255, 255, 0));
            plot.setLabelShadowPaint(new Color(255, 255, 255, 0));
            plot.setShadowPaint(new Color(255, 255, 255, 0));
            //plot.setLabelGenerator(new StandardPieSectionLabelGenerator(("{0}{2}"), NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));
            plot.setLabelGenerator(new StandardPieSectionLabelGenerator(("{2}"), NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));
            return chart;
        }
    }
    
    展开全文
  • 自定义导出word表格的格式和内容,跨行跨列等操作,可供学习和参考。
  • HTML表格的使用 与 跨行跨列

    千次阅读 2021-06-12 04:19:38
    在行标签tr里创建单元格标签td可以有多个单元格 为了显示表格的轮廓,一般还需要设置table标签的border边框属性,指定边框的宽度 代码示例: 效果图: 表格的跨行与跨列: 1、跨列跨列是指单元格横向合并。...

    表格的基本语法:

    第一个单元格的内容第二个单元格的内容
    第一个单元格的内容第二个单元格的内容

    创建表格一般分为下面四个步骤

    1.创建表格标签table

    2.在表格标签table创建行标签tr可以有多行

    3.在第一行标签tr里创建单元格标签th可以创建表格标题

    4.在行标签tr里创建单元格标签td可以有多个单元格

    为了显示表格的轮廓,一般还需要设置table标签的border边框属性,指定边框的宽度

    代码示例:

    8a1fee930a7b4296a26a50f1b8a9fb5f.png

    效果图:

    fb05da83729392a2c5a36727919cae6f.png

    表格的跨行与跨列:

    1、跨列:跨列是指单元格横向合并。col为列的意思,colspan即跨列

    单元格内容

    代码示例:

    姓名年龄性别
    张三18
    小红18

    第二行年龄18跨两列,所以要把同一行的后一列删除。跨列两列就是连占两个格子。所以要删掉多余的

    效果图:

    95a6abd2b4af5b077ccef46c57bcfd8f.png

    2、跨行:跨行是指单元格的纵向合并 row为行的意思,rowspan即跨行

    单元格内容

    代码示例:

    f3d7f669cd42e35cc6f24508b8589374.png

    效果图:

    09d18bb9b26be3305f880bca4fc2d694.png

    标签:表格,示例,标签,单元格,跨列,HTML,跨行

    来源: https://www.cnblogs.com/aryl/p/11831065.html

    展开全文
  • latex跨行跨列表格

    2021-08-11 16:56:21
    使用revtex模板的跨行跨列表格时候不需要使用\usepackage{booktabs},否则midrule,toprule这些线条不能够正常显示。因此需要使用自带的线条。 下面记录一下我试用过的跨行跨列表格latex语法 \begin{table}[hb] \...
  • dataGrid 其实就是一个html table,本文将介绍dataGrid 多维表头,表头跨行跨列设计方法需要了解的朋友可以参考下
  • html表格的跨行跨列

    2021-07-02 10:15:33
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta ...7.表格的跨行跨列</title> <
  • 而在table表格中,可以使用跨行或跨列属性的单元格有以下两种:1、表头单元格➜由标签创建的表头信息,其文本默认为居中的粗体文本;2、标准单元格➜由标签创建的数据信息,其文本默认为左对齐的普通文本;也就是说...
  • 表格的跨行跨列 第一行第一列的单元格要跨两列,利用colspan属性来实现跨列 <tablealign="center"border="1"width="200"height="200"cellspacing="0"> <tr> <thcolspan="2">1.1</th>...
  • 逻辑是在的设置上写,通过条件判断行还是不行以及多少行 const columns =[ title: '姓名', dataIndex: 'name', key: 'name', render:(text,record,index)=>{ if(text === '小李'){ return { ...
  • HTML 表格跨行跨列

    千次阅读 2021-07-12 17:03:59
    8.8跨行跨列表格(次重点,必须掌握) <!DOCTYPE html> 9-表格的跨行跨列 1.1 1.3 1.4 1.5 2.1 2.2 2.3 2.4 2.5 3.2 3.3 3.4 3.5 4.1 4.2 4.3 4.4
  • 小程序跨行跨列多列复杂表格实现 weixin_34355715 今天来实现个跨行跨列多列表格。 如图,这是个列数不确定,有的单元格还要跨行跨列的复杂表格。 这里暂时最多支持4列,列数再多就放不下了。 实现原理 实现...
  • table同时实现跨行跨列的效果: HTML代码如下: <div id="app"> <table cellpadding="0" cellspacing="0" class="ptable detail_new_dialg_table"> <tr class="dialg_table_th"> <th ...
  • java使用poi读取跨行跨列excel1.需求背景2.实现思路分析3.重要代码片码说明4.完整的代码类如下:5.完整的demo代码提供如下6.demo执行结果 1.需求背景 最近有一个工作任务是用户提供了一个基础的excel文件,要求...
  • HTML设置跨行跨列

    千次阅读 2020-09-13 09:58:58
    colspan=“2” 属性设置跨列 (数字根据你需要合并的格数选择) 跨行跨列后需将多出来的单元格删除(Ctrl+x) 下面展示一些 跨行跨列代码片。 <!DOCTYPE html> <html lang="zh_CN"> <head> <...
  • 一般使用元素的colspan属性来实现单元格跨列操作,使用元素的rowspan属性来实现单元格的跨行操作。colspan属性规定单元格可横跨的列数,所有浏览器都支持colspan属性。其取值为number,如下图所示:例如:星期一星期...
  • 先确认是跨行合并还是跨列合并 根据单元格先上后下,先左后右来进行合并 如果要合并的单元格有内容则需要先将内容消除 在表格合并前需要明确我们的合并是跨行合并还是跨列合并 一、跨行合并rowspan 在 HTML 中,...
  • 表格的跨行与跨列

    2020-09-01 00:04:51
    表格的跨行与跨列(课表示例) colspan 属性:用来规定表格单元格可横跨的列数。 rowspan 属性:用来规定表格单元格可横跨的行数。 <!DOCTYPE html> <html lang="en"> <head> <meta charset...
  • CSS3 多列布局的跨列

    千次阅读 2018-02-24 22:05:01
    跨列默认情况下,多列容器中的内容,会一列一列地自动填充。但有时候,却需要其中的某些内容(如,文章标题)不是多列布局,而是横跨所有列。要实现类似报纸、杂志上的跨列效果,就可以使用 column-span属性,来控制...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 247,200
精华内容 98,880
关键字:

跨列

友情链接: SCA.zip