Java poi创建一列 当创建第二列的时候前一列会被删除

问题遇到的现象和发生背景

循环的输出每一列 当第二列写入 前一列会删除,如果我写入两列,第一列和第三列 当写入第三列的时候 第一列就没了 map里面的integer是列

问题相关代码,请勿粘贴截图
 Workbook workbook = writeWorkbookHolder.getWorkbook();
            String sheetName = "hidderSheet";
            Sheet proviceSheet = workbook.createSheet(sheetName);
            Name name = workbook.createName();
            name.setNameName(sheetName);
            for (Map.Entry<Integer, String[]> entry : integerMap.entrySet()) {
                String[] strings = entry.getValue();
//                int hiddenSheet = workbook.getSheetIndex("hidderSheet");
//                workbook.setSheetHidden(hiddenSheet, true);
                for (int i = 0; i < strings.length; i++) {
                    proviceSheet.createRow(i).createCell(entry.getKey()).setCellValue(strings[i]);
                }

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

怎么才能完整的输出两列呢

1.使用poi的时候要注意每一个单元格都是一个对象,不可以直接复用(包括样式)
2.将第二层for循环内容改为一一创建试试

int rowNum = 0;
for (Map.Entry<Integer, String[]> entry : integerMap.entrySet()) {
                String[] strings = entry.getValue();
//                int hiddenSheet = workbook.getSheetIndex("hidderSheet");
//                workbook.setSheetHidden(hiddenSheet, true);
                for (int i = 0; i < strings.length; i++) {
                    proviceSheet.createRow(rowNum).createCell(entry.getKey()).setCellValue(strings[i]);
                }
                rowNum++;
}

你创建行的时候有问题 不应该用i


                for (int i = 0; i < strings.length; i++) {

                    proviceSheet.createRow(i).createCell(entry.getKey()).setCellValue(strings[i]);

                }

Excel中行和列是二维数组关系,一个行中有很多列,行是第一层循环,列是第二层循环。
你的截图中,strings数组是一个行中每个列的数组集合,第二层循环的i参数是给列用的。
而你把第二层循环的i用在创建行的第一层循环上就错了。
自己在循环体外面定义一个记录行数的参数:rownum,然后在第一层循环中自增即可。
望采纳!!!