java poi Excel内图片获取存储并关联数据入库
2017-11-22 17:07
701 查看
目前只找到HSSFSheet 可以获取到图片位置Xss获取不到
先获取所有图片 然后根据图片位置把图片对应数据关联
if (file.getOriginalFilename().toLowerCase().endsWith("xls")) {
HSSFWorkbook workbook = (HSSFWorkbook) WorkbookFactory.create(file.getInputStream());
List<HSSFPictureData> pictures = workbook.getAllPictures();
HSSFSheet sheet = (HSSFSheet) workbook.getSheetAt(0);
for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) {
HSSFClientAnchor anchor = (HSSFClientAnchor) shape.getAnchor();
if (shape instanceof HSSFPicture) {
HSSFPicture pic = (HSSFPicture) shape;
int row = anchor.getRow2()-2;
int col = anchor.getCol2();
System.out.println("--->" + anchor.getRow2() + ":" + anchor.getCol2());
// map.put(row+":"+col, row+":"+col);
int pictureIndex = pic.getPictureIndex() - 1;
PictureData picData = pictures.get(pictureIndex);
// System.out.println(row + ":" + col+"--->" + picData);
String ext = picData.suggestFileExtension();
byte[] data = picData.getData();
// if (ext.equals("jpeg")) {
// 把文件写存储系统
FileStorage lf = FileStorageFcatory.get();
String fileStorageName = lf.write(data, ext);
System.out.println(fileStorageName);
list.get(row).setProImg(list.get(row).getProImg() + "|" +R.getRequest().getContextPath()+Global.FILESTORAGE_BASE_URL+fileStorageName);
// Collections.reverse(list);
// }
}
}
} else {
logger.debug("xlsx");
}
先获取所有图片 然后根据图片位置把图片对应数据关联
if (file.getOriginalFilename().toLowerCase().endsWith("xls")) {
HSSFWorkbook workbook = (HSSFWorkbook) WorkbookFactory.create(file.getInputStream());
List<HSSFPictureData> pictures = workbook.getAllPictures();
HSSFSheet sheet = (HSSFSheet) workbook.getSheetAt(0);
for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) {
HSSFClientAnchor anchor = (HSSFClientAnchor) shape.getAnchor();
if (shape instanceof HSSFPicture) {
HSSFPicture pic = (HSSFPicture) shape;
int row = anchor.getRow2()-2;
int col = anchor.getCol2();
System.out.println("--->" + anchor.getRow2() + ":" + anchor.getCol2());
// map.put(row+":"+col, row+":"+col);
int pictureIndex = pic.getPictureIndex() - 1;
PictureData picData = pictures.get(pictureIndex);
// System.out.println(row + ":" + col+"--->" + picData);
String ext = picData.suggestFileExtension();
byte[] data = picData.getData();
// if (ext.equals("jpeg")) {
// 把文件写存储系统
FileStorage lf = FileStorageFcatory.get();
String fileStorageName = lf.write(data, ext);
System.out.println(fileStorageName);
list.get(row).setProImg(list.get(row).getProImg() + "|" +R.getRequest().getContextPath()+Global.FILESTORAGE_BASE_URL+fileStorageName);
// Collections.reverse(list);
// }
}
}
} else {
logger.debug("xlsx");
}
相关文章推荐
- JAVA POI自动导出数据和图片到excel
- Java用POI解析excel并获取所有单元格数据的实例
- Java+Poi 读取Excel做数据导入时获取cell值的方法
- java POI导出excel(带有图片的数据)以及ftp上传图片到另一台服务器的方法参考代码
- poi,java向 excel文件写数据(缺点,HSSFWorkbook不支持图片) 例子
- 一个将数据文件转换成excel文件打印的java实现方法的代码片断(Struts+poi)
- Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表
- Java 利用poi把数据库中数据导入Excel
- 转:通过 POI 获取图片在 Excel 表格中的位置
- Java使用POI实现数据导出excel报表
- poi 获取excel中图片
- 用Java POI操作Excel,读取数据导入DB2数据库
- javapoi读写数据 excel
- 利用POI获取Excel中图片和图片位置(支持excel2003or2007多sheet)
- Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表
- C# 操作Excel ——Excel获取数据、时间、图片
- Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)
- Java程序员从笨鸟到菜鸟之(一百零五)java操作office和pdf文件(三)利用jxl实现数据导出excel报表以及与POI的区别
- C# 操作Excel ——Excel获取数据、时间、图片
- C# 操作Excel获取数据、时间、图片