如何将现有列数据和格式复制到 Apache POI 中的下一列并将下一列向右移动。

我试过这个。
假设我的代码是这样的......

XSSFCell oldCell = worksheet.getRow(0).getCell(1);
XSSFCell newCell =  worksheet.getRow(0).getCell(2);

if(styleMap != null) {
        if(oldCell.getSheet().getWorkbook() == newCell.getSheet().getWorkbook()){
            newCell.setCellStyle(oldCell.getCellStyle());
        } else{
            int stHashCode = oldCell.getCellStyle().hashCode();
            XSSFCellStyle newCellStyle = styleMap.get(stHashCode);
            if(newCellStyle == null){
                newCellStyle = newCell.getSheet().getWorkbook().createCellStyle();
                newCellStyle.cloneStyleFrom(oldCell.getCellStyle());
                styleMap.put(stHashCode, newCellStyle);
            }
            newCell.setCellStyle(newCellStyle);
        }

    }

我能够将值从旧单元格复制到新单元格,但它不会将现有列向右移动。

在此先感谢您的帮助。

最佳答案

我已经好几年没有使用 POI,但是如果我没记错的话,您必须遍历一行中的所有单元格,并将每个 Cell 中的列号更新为您想要的。没有神奇的“插入列”方法。请记住从右到左执行此操作以避免完全破坏工作表:-)

关于java - 如何在java xssf poi中移动列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21038935/

10-12 05:11