package cn.test.demo; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Date; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFDataFormat; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.util.CellRangeAddress; /** * POI样式 * @author Administrator * */ public class Test2 { public static void main(String[] args) throws FileNotFoundException, IOException { HSSFWorkbook book=new HSSFWorkbook(); HSSFSheet sheet = book.createSheet("采购单"); /****** 画框线 ******/ int rowCount=12; //创建四周带边框的样式 (内容部分) HSSFCellStyle style_content = book.createCellStyle(); style_content.setBorderBottom(HSSFCellStyle.BORDER_THIN);//设置底部边框 style_content.setBorderTop(HSSFCellStyle.BORDER_THIN);//设置顶部边框 style_content.setBorderLeft(HSSFCellStyle.BORDER_THIN);//设置左侧边框 style_content.setBorderRight(HSSFCellStyle.BORDER_THIN);//设置右侧边框 //循环创建内容单元格 for(int i=2;i<rowCount;i++){ HSSFRow row = sheet.createRow(i);//循环创建内容行 for(int j=0;j<4;j++){ HSSFCell cell = row.createCell(j);//循环创建单元格 cell.setCellStyle(style_content);//设置单元格样式 } } /***** 合并单元格 *****/ //起始行,截止行,起始列,截止列 sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 3)); sheet.addMergedRegion(new CellRangeAddress(2, 2, 1, 3)); sheet.addMergedRegion(new CellRangeAddress(7, 7, 0, 3)); /***** 设置单元格的值 *****/ sheet.createRow(0).createCell(0).setCellValue("采购单"); sheet.getRow(2).getCell(0).setCellValue("供应商"); sheet.getRow(3).getCell(0).setCellValue("下单日期"); sheet.getRow(4).getCell(0).setCellValue("审核日期"); sheet.getRow(5).getCell(0).setCellValue("确认日期"); sheet.getRow(6).getCell(0).setCellValue("结束日期"); sheet.getRow(3).getCell(2).setCellValue("经办人"); sheet.getRow(4).getCell(2).setCellValue("经办人"); sheet.getRow(5).getCell(2).setCellValue("经办人"); sheet.getRow(6).getCell(2).setCellValue("经办人"); sheet.getRow(7).getCell(0).setCellValue("订单明细"); sheet.getRow(8).getCell(0).setCellValue("商品名称"); sheet.getRow(8).getCell(1).setCellValue("价格"); sheet.getRow(8).getCell(2).setCellValue("数量"); sheet.getRow(8).getCell(3).setCellValue("金额"); sheet.getRow(rowCount-1).getCell(0).setCellValue("合计"); /**** 设置行高列宽 ******/ //设置列宽 for(int i=0;i<4;i++){ sheet.setColumnWidth(i, 5000); } //设置行高 for(int i=2;i<rowCount;i++){ HSSFRow row = sheet.getRow(i); row.setHeight((short) 500);//设置行高 } //设置标题行高度 sheet.getRow(0).setHeight((short) 1000); /****** 设置对齐方式 ******/ style_content.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中 style_content.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中 //创建字体(内容) HSSFFont font = book.createFont(); font.setFontName("宋体"); font.setFontHeightInPoints((short) 11); style_content.setFont(font);//设置字体 //设置单元格为文本格式 XSSFCellStyle cell_context = book.createCellStyle(); XSSFDataFormat format = book.createDataFormat(); cell_context.setDataFormat(format.getFormat("@")); //设置标题的样式 HSSFCellStyle style_title = book.createCellStyle(); style_title.setAlignment(HSSFCellStyle.ALIGN_CENTER); style_title.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); HSSFFont font_title = book.createFont();//标题所用字体 font_title.setFontName("黑体"); font_title.setFontHeightInPoints((short) 18); font_title.setBold(true);//加粗 style_title.setFont(font_title);//设置标题样式字体 sheet.getRow(0).getCell(0).setCellStyle(style_title);//设置标题样式 /***** 设置日期格式 *****/ HSSFDataFormat dataFormat = book.createDataFormat();//创建数据格式 HSSFCellStyle style_date = book.createCellStyle();//日期样式 style_date.cloneStyleFrom(style_content);//克隆样式 style_date.setDataFormat(dataFormat.getFormat("yyyy-MM-dd hh:mm")); for(int i=3;i<7;i++){ sheet.getRow(i).getCell(1).setCellStyle(style_date);//设置日期格式 } sheet.getRow(3).getCell(1).setCellValue(new Date()); book.write(new FileOutputStream("d:\\test2.xls"));
//如果不传下载路径,可以使用一些代码 response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment;filename=client_template.xlsx"); OutputStream ouputStream = response.getOutputStream(); book.write(ouputStream); ouputStream.flush();ouputStream.close(); }}
poi的使用模型
最新推荐文章于 2024-07-22 16:44:01 发布