最近写的项目里,需要将人员信息导出成EXCEL表,做一下备份
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream( inputfile)); // 读取excel模板 HSSFSheet sheet = workbook.getSheetAt(0); // 读取第一个工作簿 HSSFRow row; HSSFCell cell = null; int rownum = 1; // 添加的起始行 HSSFCellStyle style = getStyle(workbook); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 下边框 style.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 左边框 style.setBorderTop(HSSFCellStyle.BORDER_THIN);// 上边框 style.setBorderRight(HSSFCellStyle.BORDER_THIN);// 右边框
//字体设置 HSSFFont f = workbook.createFont(); f.setFontName("宋体"); f.setFontHeightInPoints((short) 10);// 字号 style.setFont(f); row = sheet.getRow(rownum);
//将图片导入到excel中 // 先把读进来的图片放到一个ByteArrayOutputStream中,以便产生ByteArray ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
//filePath 替换为图片路径 BufferedImage bufferImg = ImageIO.read(new File( filePath)); ImageIO.write(bufferImg, "jpg", byteArrayOut); HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); HSSFClientAnchor anchor = new HSSFClientAnchor(10,10, 1023, 255, (short) 7, 1, (short) 7, 4); patriarch .createPicture(anchor, workbook.addPicture( byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)
col1,row1代表图片左上角所在的单元格,col2,row2代表图片右下角所在的单元格
dx1,dy1代表图片左上角所在单元格中 左上角顶点的xy坐标,同理<pre name="code" class="java">dx2,dy2代表图片右下角所在单元格中 左上角顶点的xy坐标,
注:dx1,dy1需要设置一下,我这边设置成10,10,不然图片会把单元格的边框覆盖掉,
dx2,dy2在使用中暂时没有设置,不设置应该是全填充的样式。