日常琐碎记录:POI部分已过时方法(设置对齐方式、设置字体颜色)的替换、向Excel中插入图片的示例代码...

过时方法示例:

 HSSFWorkbook wb = new HSSFWorkbook();
          HSSFSheet sheet = wb.createSheet("new   sheet");
          HSSFCellStyle style = wb.createCellStyle(); // 样式对象
          style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直
          style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 水平
          /**字体begin*/
          style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
          //背景颜色
//          style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
//          style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
//          style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
//          style.setBorderRight(HSSFCellStyle.BORDER_THIN);
//          style.setBorderTop(HSSFCellStyle.BORDER_THIN);
//          style.setAlignment(HSSFCellStyle.ALIGN_CENTER);

          //生成一个字体
          HSSFFont font=wb.createFont();
          font.setColor(HSSFColor.BLACK.index);//HSSFColor.VIOLET.index //字体颜色
          font.setFontHeightInPoints((short)12);
          font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);         //字体增粗
         //把字体应用到当前的样式
          style.setFont(font);
          /**字体end*/
          HSSFRow row = sheet.createRow((short) 0);
          HSSFRow row2 = sheet.createRow((short) 1); 


新方法示例:
 

		// 单元格格式
		CellStyle cellStyle = excel.createCellStyle();
		cellStyle.setRotation((short) 255);// 文字竖排列
		cellStyle.setAlignment(HorizontalAlignment.CENTER);// 左右居中
		cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 上下居中

		// 单元格格式
		CellStyle cellStyle2 = excel.createCellStyle();
		cellStyle2.setWrapText(true);// 文字自动换行
		cellStyle2.setVerticalAlignment(VerticalAlignment.TOP);// 向上对齐
		
		// 单元格格式
		Font font = excel.createFont();
		font.setColor(IndexedColors.BLUE.getIndex());
		font.setFontName("宋体");
		CellStyle cellStyle3 = excel.createCellStyle();
		cellStyle3.setAlignment(HorizontalAlignment.CENTER);// 左右居中
		cellStyle3.setVerticalAlignment(VerticalAlignment.CENTER);// 上下居中
		cellStyle3.setFont(font);

插入图片的示例:

	/**
	 * 插入图片到Excel.
	 * @param dirName
	 * @param excel
	 */
	private void insertPics(String dirName, Workbook excel) throws Exception {
		File dir = new File(dirName);

		FileInputStream[] input = null;
		try {
			File[] listFiles = dir.listFiles();
			int len = listFiles.length;
			input = new FileInputStream[len];
			for (int i = 0; i < len; i++) {
				Sheet sheet = excel.createSheet("图片" + (i + 1));

				input[i] = new FileInputStream(listFiles[i]);

				int pictureIdx = excel.addPicture(IOUtils.toByteArray(input[i]), Workbook.PICTURE_TYPE_PNG);

				// 图片插入坐标
				ClientAnchor anchor = excel.getCreationHelper().createClientAnchor();
				anchor.setCol1(0);
				anchor.setRow1(1);

				// 插入图片
				sheet.createDrawingPatriarch().createPicture(anchor, pictureIdx).resize();
			}
		} catch (FileNotFoundException e) {
			throw new RuntimeException("向Excel插入图片时未找到目标图片", e);
		} catch (IOException e) {
			throw new RuntimeException("向Excel插入图片失败", e);
		} finally {
			if (input != null) {
				input.close();
			}
		}
	}

 

转载于:https://my.oschina.net/qw3670/blog/2986140

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java可以使用Apache POI来实现向Excel插入图片的功能。下面是一个简单的示例代码: ```java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.ClientAnchor; import org.apache.poi.ss.usermodel.CreationHelper; import org.apache.poi.ss.usermodel.Drawing; import org.apache.poi.ss.usermodel.Picture; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFDrawing; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelImageInsert { public static void main(String[] args) throws IOException { // 创建一个新的工作簿 Workbook workbook = new XSSFWorkbook(); // 获取工作表的绘图对象 Drawing drawing = workbook.createSheet("Sheet1").createDrawingPatriarch(); // 加载图片 File file = new File("image.jpg"); FileInputStream fis = new FileInputStream(file); byte[] bytes = new byte[(int) file.length()]; fis.read(bytes); fis.close(); // 将图片插入Excel int pictureIndex = workbook.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG); CreationHelper helper = workbook.getCreationHelper(); ClientAnchor anchor = helper.createClientAnchor(); anchor.setCol1(0); anchor.setRow1(0); Picture picture = drawing.createPicture(anchor, pictureIndex); picture.resize(); // 保存工作簿 FileOutputStream fos = new FileOutputStream("excel.xlsx"); workbook.write(fos); fos.close(); workbook.close(); } } ``` 在这个示例,我们首先创建了一个新的工作簿,然后获取了工作表的绘图对象。接着,我们加载了一张图片,并将其插入到Excel。最后,我们保存了工作簿。请注意,这个示例只是演示了如何将图片插入到Excel,实际应用,你可能需要更多的代码来控制图片的位置和大小等属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值