POI将照片插入excel但失败

时间:2014-11-15 18:34:49

标签: insert apache-poi photo

下面是我从网上某处复制的代码,用于将图像文件复制到Excel文件工作表。

但运行语句时出错     “int my_picture_id = my_workbook.addPicture(bytes,Workbook.PICTURE_TYPE_JPEG);”     错误“线程中的异常”主“java.lang.NoClassDefFoundError:
    组织/阿帕奇/公/编解码器/消化/ DigestUtils     在org.apache.poi.hssf.usermodel.HSSFWorkbook.addPicture(HSSFWorkbook.java:1610)     在Addphoto.main(Addphoto.java:19)“

我找不到原因,因为我真的是java的新手。请帮助解决这个问题。

import java.io.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.*;
import org.apache.poi.util.IOUtils;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
public class Addphoto {  
    public static void main(String[] args) throws Exception{

            HSSFWorkbook my_workbook = new HSSFWorkbook();
            HSSFSheet my_sheet = my_workbook.createSheet("MyBanner");               

            InputStream my_banner_image = new FileInputStream("C:/path/123.jpg");

            byte[] bytes = IOUtils.toByteArray(my_banner_image);

            int my_picture_id = my_workbook.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG);
            my_banner_image.close();                
            HSSFPatriarch drawing = my_sheet.createDrawingPatriarch();
            ClientAnchor my_anchor = new HSSFClientAnchor();
            my_anchor.setCol1(2);
            my_anchor.setRow1(1);           
            HSSFPicture  my_picture = drawing.createPicture(my_anchor, my_picture_id);

            my_picture.resize();            

            FileOutputStream out = new FileOutputStream(new File("C:/path/uploadphoto-test.xls"));
            my_workbook.write(out);
            out.close();
    }

}

1 个答案:

答案 0 :(得分:1)

我希望你得到答案.....

但是为了帮助其我我发布这个。

如果您缺少JAR文件commons-codec-1.7.jar,这是Apache Commons Codec发行版的一部分,则会出现此问题。 POI需要此JAR文件才能将图像添加到工作簿。因此,请确保在类路径中包含此JAR文件(或等效版本)。