对excel进行分组分局第一列隔的列数

dart 复制代码
        List<List<String>> getdata = extractDataFromListNullString(chartDateTto.getDataList());
// 获取第一行数据
        List<String> firstRow = getdata.get(0);

// 获取第一行第二列的文字,前提是该文字不为 "0"
        String secondColumnText = firstRow.get(1);
        int columnGap = 0;
        if ("0".equals(secondColumnText)) {
            System.out.println("第二列的值为 0,跳过该列。");
        } else {
            // 查找下一个非空且非 "0" 的单元格文字并计算间隔
            String nextNonEmptyText = null;

            for (int i = 2; i < firstRow.size(); i++) {
                String currentCell = firstRow.get(i);
                if (currentCell != null && !currentCell.isEmpty() && !"0".equals(currentCell)) {
                    nextNonEmptyText = currentCell;
                    columnGap = i - 1; // 计算间隔列数,i - 1 因为要计算从第二列到下一个文字的间隔
                    break;
                }
            }

            if (nextNonEmptyText != null) {
                System.out.println("第一行第二列的文字: " + secondColumnText);
                System.out.println("下一个文字是: " + nextNonEmptyText);
                System.out.println("它们之间间隔了 " + columnGap + " 列");
            } else {
                System.out.println("在第一行没有找到下一个非空且非 '0' 的单元格文字。");
            }
        }

// 移除前两行数据
        getdata.remove(0);
        getdata.remove(0);

// 遍历每一行数据,删除第一列
        for (List<String> row : getdata) {
            if (!row.isEmpty()) {
                row.remove(0); // 删除每一行的第一列数据
            }
        }

// 遍历每一行数据,并将每行按 columnGap 列为一组进行分组
        for (int rowIndex = 0; rowIndex < getdata.size(); rowIndex++) {
            List<String> row = getdata.get(rowIndex);

            // 创建存储分组的列表
            List<List<String>> groupedData = new ArrayList<>();

            // 遍历当前行,并按 columnGap 列为一组进行分组
            for (int colIndex = 0; colIndex < row.size(); colIndex += columnGap) {
                List<String> group = new ArrayList<>();

                // 获取当前分组的列数据
                for (int i = colIndex; i < colIndex + columnGap && i < row.size(); i++) {
                    group.add(row.get(i));
                }

                // 添加分组到 groupedData 中
                groupedData.add(group);
            }

            // 打印分组数据
            for (int groupIndex = 0; groupIndex < groupedData.size(); groupIndex++) {
                System.out.print("分组 " + (groupIndex + 1) + " 数据: " + groupedData.get(groupIndex) + " ");
            }

            System.out.println(); // 每行数据分组后换行
        }
相关推荐
李昊哲小课19 小时前
Python办公自动化教程 - 第7章 综合实战案例 - 企业销售管理系统
开发语言·python·数据分析·excel·数据可视化·openpyxl
葡萄城技术团队1 天前
Excel 科普:循环引用是“错误”还是“黑科技”?
excel
李昊哲小课1 天前
Python办公自动化教程 - openpyxl让Excel处理变得轻松
python·信息可视化·excel
李昊哲小课1 天前
Python办公自动化教程 - 第1章 openpyxl基础入门 - 第一次用代码操控Excel
开发语言·python·excel·openpyxl
weitingfu1 天前
Excel VBA 入门到精通(二):变量、数据类型与运算符
java·大数据·开发语言·学习·microsoft·excel·vba
升职佳兴1 天前
Excel:VLOOKUP 学习笔记 · 完整版
笔记·学习·excel
Jp7gnUWcI2 天前
基于.NET操作Excel COM组件生成数据透视报表
.net·excel
pl4H522a62 天前
Python 高效实现 Excel 转 TXT 文本
java·python·excel
开开心心_Every2 天前
实用PDF擦除隐藏信息工具,空白处理需留意
运维·服务器·网络·pdf·电脑·excel·依赖倒置原则
codeJinger3 天前
【Python】操作Excel文件
python·excel