java 生成excel (POI)

实例:

public class POITest1 {
  public static void main(String[] args)throws Exception {
  //声明一个工作薄
   HSSFWorkbook wb=new HSSFWorkbook();
   //生成一个表格
   HSSFSheet sheet=wb.createSheet("表格2");
   //生成一个列
   HSSFRow row=sheet.createRow(0);
   //生成一个样式
   HSSFCellStyle style=wb.createCellStyle();
   //设置这些样式
   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.VIOLET.index);
   font.setFontHeightInPoints((short)16);
   font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
   //把字体应用到当前的样式
   style.setFont(font);
   //声明一个画图的顶级管理器
   HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
   //填充单元格
   for(short i=0;i<5;i++){
   //声明一个单元格
   HSSFCell cell=row.createCell(i);
    switch(i){
    case 0:
    //设置普通文本
    cell.setCellValue(new HSSFRichTextString("普通文本"));
    break;
    case 1:
    //设置为形状
    HSSFClientAnchor a1 = new HSSFClientAnchor( 0, 0, 1023, 255, (short) 1, 0, (short) 1, 0 );
    HSSFSimpleShape shape1 = patriarch.createSimpleShape(a1);
    //这里可以设置形状的样式
    shape1.setShapeType(HSSFSimpleShape.OBJECT_TYPE_OVAL);
    
    break;
    case 2:
    //设置为布尔量
    cell.setCellValue(true);
    break;
    case 3:
    //设置为double值
    cell.setCellValue(12.5);
    break;
    case 4:
    //设置为图片]
    URL url=POITest1.class.getResource("gg1.gif");
    insertImage(wb,patriarch,getImageData(ImageIO.read(url)),0,4,1);
    break;
    
    }
   
   //设置单元格的样式
   cell.setCellStyle(style);
   }
   FileOutputStream fout=new FileOutputStream("我的第二个EXCEL.xls");
   //输出到文件
   wb.write(fout);
   fout.close();
   }
   //自定义的方法,插入某个图片到指定索引的位置
   private static void insertImage(HSSFWorkbook wb,HSSFPatriarch pa,byte[] data,int row,int column,int index){
   int x1=index*250;
   int y1=0;
   int x2=x1+255;
   int y2=255;
   HSSFClientAnchor anchor = new HSSFClientAnchor(x1,y1,x2,y2,(short)column,row,(short)column,row);
   anchor.setAnchorType(2);
   pa.createPicture(anchor , wb.addPicture(data,HSSFWorkbook.PICTURE_TYPE_JPEG));
   }
   //从图片里面得到字节数组
   private static byte[] getImageData(BufferedImage bi){
   try{
   ByteArrayOutputStream bout=new ByteArrayOutputStream();
   ImageIO.write(bi,"PNG",bout);
   return bout.toByteArray();
   }catch(Exception exe){
   exe.printStackTrace();
   return null;
   }
  }

}

poi的jar包下载:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值