//创建一个Excel对象,inputStream为指定excel的字节流。方法一:XSSFWorkbook workBook = new XSSFWorkbook ()。(HSSFWorbook为2007以前版本即xls),如果用这种方式则所有对象需要create,不能get Workbook wb = WorkbookFactory.create(inputStream); //获得一个Sheet页对象,sheet1为sheet页名称,也可用wb.createSheet("sheet1") Sheet sheet = wb.getSheet("sheet1") Row row = sheet.createRow(0)//创建指定行对象下标从0开始,如果用getRow(0)则需要excel中有此数据行 Cell cell = row.createCell(0)//创建一个单元格对象下标从0开始 cell.setCellStyle(cellStyle)//设置单元格风格样式,cellStyle为样式对象 cell.setCellValue("测试")//设置单元格值 //创建一个样式对象 CellStyle cellStyle = wb.createCellStyle() cellStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER)//垂直居中 cellStyle.setAlignment(CellStyle.ALIGN_CENTER)//水平居中 cellStyle.setBorderTop(BorderStyle.THIN)//上边框 cellStyle.setBorderBottom(BorderStyle.THIN)//下边框 cellStyle.setBorderLeft(BorderStyle.THIN)//左边框 cellStyle.setBorderRight(BorderStyle.THIN)//右边框 //创建一个字体对象,放到样式对象中 Font font = wb.createFont() font.setFontHeightInPoints((short) 11)//设置字体大小 font.setFontName("宋体")//设置字体 font.setBoldweight(Font.BOLDWEIGHT_BOLD)//加粗 font.setColor(HSSFColor.BLUE.index)//设置字体颜色 font.setStrikeout(true)//设置删除线 font.setItalic(true)//设置斜体 font.setUnderline((byte)0)//设置下划线 //样式操作 cellStyle.setFont(font)//放到样式中 cellStyle.setWrapText(true)//自动换行
//合并单元格,参数为:起始行,结束行,起始列,结束列 sheet.addMergedRegion(new CellRangeAddress(1, 3, 1, 3))
//创建一个图片生成器 Drawing drawing = sheet.createDrawingPatriarch()
//给Excel对象添加一个图片需要两个参数:1.目标图片的字节流数组 2.图片类型。返回一个int型应该为图片的编号 int pictureureIdx = wb.addPicture(imageBytes, Workbook.PICTURE_TYPE_PNG)
//创建一个定位对象 CreationHelper helper = wb.getCreationHelper() ClientAnchor anchor = helper.createClientAnchor() //单元格内部位置设置(可以不设置默认) anchor.setDx1(1) anchor.setDy1(1) anchor.setDx2(1023) anchor.setDy2(100) //全局定位setCol1、setRow1分别为开始单元格,即从某行的某个单元格开始(图片的左上角位置)为开区间。setCo2、setRow2为结束单元格(图片的右下角位置)为闭区间 anchor.setCol1(1) anchor.setRow1(count) anchor.setCol2(2) anchor.setRow2(count + 2)
//生成图片,需要两个参数:1.定位对象 2:图片在wb对象中的编号 drawing.createPicture(anchor, pictureureIdx)
//富文本操作 new XSSFRichTextString("123\r\n456")//强制换行