我正在使用Java和apache poi将图像添加到excel工作簿 . 小尺寸图像没有问题 . 当我尝试添加大尺寸的图像时 . 该日志显示非法参数异常 . 我认为这是因为,poi无法为大图像设置锚点 . 有谁知道它失败了什么尺寸或分辨率?我正在使用大小为1600x1200的.png图像 . 就像我提到的,这种方法适用于小图像,适用于100x100像素 . 以前有人有这个问题吗?如何解决它 . 我需要插入高分辨率的图像 . 图像应该跨越大多数excel文档 . 这是我得到的错误消息:

SEVERE:null java.lang.IllegalArgumentException:col2必须介于0和255之间的org.apache.poi.hssf.usermodel.HSSFClientAnchor.checkRange(HSSFClientAnchor.java:245)org.apache.poi.hssf.usermodel.HSSFClientAnchor . setCol2(HSSFClientAnchor.java:136)org.apache.poi.hssf.usermodel.HSSFPicture.resize(HSSFPicture.java:100)at org.apache.poi.hssf.usermodel.HSSFPicture.resize(HSSFPicture.java:119)

我使用以下代码来做到这一点:

private HSSFSheet insertImageWithFilename(Workbook workbook, HSSFSheet sheet, int col, int    row,double scaling, String fileName)
{
    try
    {
        StringBuilder builder = new StringBuilder(45);
        builder.append(Configuration.getRoot().getInstallation().getDirectory());
        builder.append(File.separator).append(Configuration.getRoot().getInstallation().getPortalName());
        builder.append(File.separator).append(IMAGE_PATH);
        builder.append(File.separator).append(fileName);
        InputStream is = new FileInputStream(builder.toString());
        byte[] bytes = IOUtils.toByteArray(is);
        int pictureIdx = workbook.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
        CreationHelper helper = workbook.getCreationHelper();
        Drawing drawing = sheet.createDrawingPatriarch();
        ClientAnchor anchor = helper.createClientAnchor();
        anchor.setCol1(col);
        anchor.setRow1(row);
        anchor.setAnchorType(2);
        Picture pict = drawing.createPicture(anchor, pictureIdx);
        pict.resize();
        pict.resize(scaling);
    }
    catch (FileNotFoundException fnfe)
    {
        System.out.println("FileNotFoundException:" + fnfe.getMessage());
    }
    catch (IOException ioe)
    {
        System.out.println("IOException:" + ioe.getMessage());
    }
    return sheet;
}

编辑:缩放具有此值:0.1d . 谢谢你的回复 .