java 读取并保存excel中的图片
来源:互联网 发布:网络隐私权如何维护 编辑:程序博客网 时间:2024/05/12 08:51
/*
* 保存excel中的图片(以文件形式保存,或者存入数据库)
*
* basePath:应用所在路径,附件存放路径:
* 参数:is是上传的附件文件流
*/
public void saveSheetImgByFile(String basePath,InputStream is) throws ParseException {
FileOutputStream os = null;
try {
Workbook wbk = Workbook.getWorkbook(is);
//建文件目录
File mkFile = new File(basePath);
if (!mkFile.exists() && !mkFile.isDirectory()) {
mkFile.mkdirs();
}
// 循环所有sheet
for (int k = 0; k < wbk.getNumberOfSheets(); k++) {
Sheet sheet = wbk.getSheet(k);
// 共有多少行
int imgNumber = sheet.getNumberOfImages();// 获得sheet所包含的图片数
// 循环sheet的所有图片
for (int i = 0; i < imgNumber; i++) {
Image image = sheet.getDrawing(i);
byte[] imageData = image.getImageData();
String fileName = image.getImageFile().getName().trim()
+ ".jpg";
File file = new File(basePath+"/" + fileName);
os = new FileOutputStream(file);// 建立一个上传文件的输出流
os.write(imageData, 0, imageData.length);// 将文件写入服务器
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (os != null) {
os.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/*
* 将excel图片文件保存到数据库
*/
public void saveSheetImgByDB(InputStream is) throws ParseException,
ClassNotFoundException, SQLException, IOException {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf8", "root", "root");
String INSERT_PICTURE = "insert into t_mypicture(name, photo) values (?, ?)";
PreparedStatement ps = null;
FileOutputStream os = null;
try {
Workbook wbk = Workbook.getWorkbook(is);
// 循环所有sheet
for (int k = 0; k < wbk.getNumberOfSheets(); k++) {
Sheet sheet = wbk.getSheet(k);
// 共有多少行
int imgNumber = sheet.getNumberOfImages();// 获得sheet所包含的图片数
// 循环sheet的所有图片
for (int i = 0; i < imgNumber; i++) {
Image image = sheet.getDrawing(i);
byte[] imageData = image.getImageData();
String fileName = image.getImageFile().getName().trim()
+ ".jpg";
conn.setAutoCommit(false);
ps = conn.prepareStatement(INSERT_PICTURE);
ps.setString(1, fileName);
ps.setBytes(2, imageData);
ps.executeUpdate();
conn.commit();
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (os != null) {
os.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.action方法调用:
ImportExcelUtil ieu = new ImportExcelUtil();
ExcelForm excelForm = (ExcelForm) form;
FormFile file = excelForm.getExcelFile();
// 附件方式保存
String basePath = request.getSession().getServletContext().getRealPath(
"/")+"excelFile";
try {
ieu.saveSheetImgByFile(basePath,file.getInputStream());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 数据库方式保存
try {
ieu.saveSheetImgByDB(file.getInputStream());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- java 读取并保存excel中的图片
- java 读取并保存excel中的图片
- 在Java中读取并保存EXCEL文件中图片
- 在Java中读取并保存EXCEL文件中图片
- java读取excel中的多图片
- 读取视频中的每一帧并保存图片
- 【Java】Java从网络读取图片并保存至本地
- java:读取并修改word中的内容并保存。
- 远程读取图片并保存
- 读取EXCEL中的图片
- Java从网络读取图片并保存至本地
- Java从网络读取图片并保存至本地 .
- Java从网络读取图片并保存至本地
- Java从网络读取图片并保存至本地
- Java从网络读取图片并保存至本地
- 使用Java读取网络图片并保存至本地
- Java从网络读取图片并保存至本地
- Java从网络读取图片并保存至本地
- GWT 编译:源码在另一个项目中
- “钓鱼”游戏组件的应用模式是不是有些急功近利了?
- static
- JAVA(一)
- 随机生成图片验证码
- java 读取并保存excel中的图片
- 【UNIX】IO复用
- 把combobox下拉选项显示成一个表格
- #include与#include区别
- JAVA(二)
- 【学习散记6 --表和索引体系结构】
- 假如没有百度,世界将会怎样?
- Windows 2000/XP/2003系统中快速锁定电脑(计算机)的2则方法
- 需要的是多一个想法