ZBLOG

private void mergeFileSheet(File originalFile, List fileUrls) throws Exception { try (FileInputStream fis = new FileInputStream(originalFile); Workbook originalWorkbook = new XSSFWorkbook(fis)) { for (Strin...

要支持复制图片类型,可以使用Apache POI中的HSSF(.xls格式)或XSSF(.xlsx格式)来处理。首先,在copyRow()方法中添加一段代码来处理单元格类型为图片的情况:

case PICTURE:
    if (sourceCell instanceof XSSFPicture) {
        XSSFPicture sourcePicture = (XSSFPicture) sourceCell;
        XSSFWorkbook targetWorkbook = (XSSFWorkbook) workbook;
        XSSFDrawing targetDrawing = (XSSFDrawing) targetSheet.createDrawingPatriarch();
        
        // 复制图片到新sheet页
        XSSFPictureData sourcePictureData = sourcePicture.getPictureData();
        byte[] pictureData = sourcePictureData.getData();
        int pictureIndex = targetWorkbook.addPicture(pictureData, Workbook.PICTURE_TYPE_PNG); // 假设以PNG格式复制图片
        XSSFClientAnchor anchor = new XSSFClientAnchor(sourcePicture.getClientAnchor().getDx1(), 
                                                      sourcePicture.getClientAnchor().getDy1(), 
                                                      sourcePicture.getClientAnchor().getDx2(), 
                                                      sourcePicture.getClientAnchor().getDy2(), 
                                                      sourcePicture.getClientAnchor().getCol1(),
                                                      target.getLastRowNum() + 1, // 新行的索引
                                                      sourcePicture.getClientAnchor().getCol2(),
                                                      target.getLastRowNum() + 1); // 新行的索引

        XSSFPicture newPicture = targetDrawing.createPicture(anchor, pictureIndex);
        
        // 设置图片大小和位置等属性(可根据需要进行调整)
        newPicture.resize(); 

    } else {
        // 如果是HSSF,类似地处理
    }
    break;

请注意,在使用copyRow()方法之前,你需要在mergeFileSheet()方法中添加以下代码,以确保正确的初始化:

Workbook targetWorkbook = originalSheet.getWorkbook();
Sheet targetSheet = targetWorkbook.getSheetAt(0); // 假设目标sheet是第一个sheet页

这样就可以处理图片类型的单元格并复制到新的sheet页了。记得根据实际情况调整和优化代码。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=16336

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?