java - 在合并两个 Excel 文件期间操作单元格

标签 java excel apache-poi

我试图在合并两个 Excel 文件时在它们之间添加标题。这两个文件有表格,我可以将它们合并在一起,但我不知道如何在这两个表格之间添加标题。 我的代码中负责合并工作表的部分如下所示;

public static void addSheet(org.apache.poi.ss.usermodel.Sheet mergedSheet, org.apache.poi.ss.usermodel.Sheet sheet,String title) {
        // map for cell styles
        Map<Integer, org.apache.poi.ss.usermodel.CellStyle> styleMap = new HashMap<Integer, org.apache.poi.ss.usermodel.CellStyle>();

        // This parameter is for appending sheet rows to mergedSheet in the end
        int len = mergedSheet.getLastRowNum();
        for (int j = sheet.getFirstRowNum(); j <= sheet.getLastRowNum(); j++) {

            org.apache.poi.ss.usermodel.Row row = sheet.getRow(j);
            org.apache.poi.ss.usermodel.Row mrow = mergedSheet.createRow(len + j + 1);
            try {
                for (int k = row.getFirstCellNum(); k < row.getLastCellNum(); k++) {
                org.apache.poi.ss.usermodel.Cell cell=null;
                if(row.getCell(k)!=null){
                 cell = row.getCell(k);
                }else{
                    cell= row.createCell(k);
                }
                org.apache.poi.ss.usermodel.Cell mcell = mrow.createCell(k);

                if (cell.getSheet().getWorkbook() == mcell.getSheet()
                        .getWorkbook()) {
                    mcell.setCellStyle(cell.getCellStyle());
                } else {
                    int stHashCode = cell.getCellStyle().hashCode();
                    org.apache.poi.ss.usermodel.CellStyle newCellStyle = styleMap.get(stHashCode);
                    if (newCellStyle == null) {
                        newCellStyle = mcell.getSheet().getWorkbook()
                                .createCellStyle();
                        newCellStyle.cloneStyleFrom(cell.getCellStyle());
                        styleMap.put(stHashCode, newCellStyle);
                    }
                    mcell.setCellStyle(newCellStyle);
                }

                switch (cell.getCellType()) {
                case HSSFCell.CELL_TYPE_FORMULA:
                    mcell.setCellFormula(cell.getCellFormula());
                    break;
                case HSSFCell.CELL_TYPE_NUMERIC:
                    mcell.setCellValue(cell.getNumericCellValue());
                    break;
                case HSSFCell.CELL_TYPE_STRING:
                    mcell.setCellValue(cell.getStringCellValue());
                    break;
                case HSSFCell.CELL_TYPE_BLANK:
                    mcell.setCellType(HSSFCell.CELL_TYPE_BLANK);
                    break;
                case HSSFCell.CELL_TYPE_BOOLEAN:
                    mcell.setCellValue(cell.getBooleanCellValue());
                    break;
                case HSSFCell.CELL_TYPE_ERROR:
                    mcell.setCellErrorValue(cell.getErrorCellValue());
                    break;
                default:
                    mcell.setCellValue(cell.getStringCellValue());
                    break;
                }
            }
            } catch (Exception e) {
            }

        }
    }

有什么想法吗?

最佳答案

可能不是您想要的,但您可以创建第三个仅包含标题的 Excel 文件。

关于java - 在合并两个 Excel 文件期间操作单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30942897/

相关文章:

java - DynamoDBMapper 不工作 - 保存批记录抛出@DynamoDBTyped 或@DynamoDBTypeConverted 错误

java - 提供程序 com.levigo.jbig2.util.log.JDKLoggerBridge 不是子类型

VBA:将所选图表从 Excel 复制 + 粘贴到 Powerpoint

vba - 为什么输入 Worksheets ("Sheet1") 后没有出现 Intellisense。?

excel - Excel中的数字格式

java - Apache POI with Android -- 如何创建、阅读、编写、删除 PowerPoint 演示文稿?

java - 在银行系统应用程序中访问帐户余额

java - Android - dlopen 失败 : file offset for the library

java - Apache POI setCellType 未正确设置数值的单元格类型

java - 在生产环境中隐藏第一列