4

我在使用 Apache POI(版本 3.7)将图片插入 Excel 工作簿时遇到问题。这是我的代码:

private static void createAndFillWorkbook() {
    FileOutputStream out = null;
    FileInputStream in = null;
    try {
        HSSFWorkbook workbook = new HSSFWorkbook();
        File picture = new File("D:\\pngPict.png");
        byte[] buf = new byte[(int) picture.length()];
        in = new FileInputStream(picture);
        in.read(buf);
        workbook.addPicture(buf, Workbook.PICTURE_TYPE_PNG);
        out = new FileOutputStream("D:\\Book3.xls");
        workbook.write(out);
    } catch (Exception e) {
    } finally {
        try {
            if (out != null) {
                out.close();
            }
            if (in != null) {
                in.close();
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

它不起作用(我使用的是 .xls 文件格式),我不知道为什么。

4

1 回答 1

4

主要问题是 Apache poi addPictureapi 依赖于 apache 通用编解码器。commons-codec-1.6从这个位置http://commons.apache.org/codec/download_codec.cgi下载 jar 并将 jar 放在你的类路径中。

它应该工作。还可以尝试将图片添加到 Excel 的示例

http://poi.apache.org/spreadsheet/quick-guide.html#Images

这里还有一个示例工作代码

http://www.codemiles.com/java/image-insert-in-excel-file-using-poi-t1340.html

希望这可以帮助 !!

于 2012-04-08T09:16:36.997 回答