maven中导包
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
简单的工具类
public class ExcelPoi {
//创建工作簿
public static HSSFWorkbook createBook(){
return new HSSFWorkbook();
}
//创建工作表
public static HSSFSheet createSheet(HSSFWorkbook book,String name){
return book.createSheet(name);
}
//创建数据行
public static HSSFRow createRow(HSSFSheet sheet,int rownum){
return sheet.createRow(rownum-1);
}
//创建数据格
public static HSSFCell createCell(HSSFRow row,int col){
return row.createCell(col-1);
}
使用的是SSH中的业务层处理
//向excel中写数据
public List<Emp> exprot(String name) {
HSSFWorkbook book =ExcelPoi.createBook();
HSSFSheet sheet=ExcelPoi.createSheet(book, "员工");
List<Emp> emp=empDao.listAll();
int r=1;
int ch=1;
HSSFRow row1 =ExcelPoi.createRow(sheet, r); //每列的标题
ExcelPoi.createCell(row1, ch++).setCellValue("ID");
ExcelPoi.createCell(row1, ch++).setCellValue("NAME");
ExcelPoi.createCell(row1, ch++).setCellValue("PASSWORD");
ExcelPoi.createCell(row1, ch++).setCellValue("ATTENDANCE");
ExcelPoi.createCell(row1, ch++).setCellValue("DEPT");
ExcelPoi.createCell(row1, ch++).setCellValue("DEPTNO");
ExcelPoi.createCell(row1, ch++).setCellValue("HIREDATE");
ExcelPoi.createCell(row1, ch++).setCellValue("SALARY");
ExcelPoi.createCell(row1, ch++).setCellValue("STATE");
r++;
for(Emp e:emp){
int col=1;
HSSFRow row =ExcelPoi.createRow(sheet, r);
ExcelPoi.createCell(row, col++).setCellValue(e.getId());
ExcelPoi.createCell(row, col++).setCellValue(e.getName());
ExcelPoi.createCell(row, col++).setCellValue(e.getPassword());
ExcelPoi.createCell(row, col++).setCellValue(e.getAttendance());
ExcelPoi.createCell(row, col++).setCellValue(e.getDeptName());
ExcelPoi.createCell(row, col++).setCellValue(e.getDeptNo());
ExcelPoi.createCell(row, col++).setCellValue(e.getHiredate());
ExcelPoi.createCell(row, col++).setCellValue(e.getSal());
ExcelPoi.createCell(row, col++).setCellValue(e.getState());
r++;
}
try {
FileOutputStream fos=new FileOutputStream(new File("C:/Users/zs/Desktop/liu.xls"));
book.write(fos);
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return emp;
}
成功。。。。。
其他的一些样式操作
一、设置背景色:
setBorder.setFillForegroundColor((short) 13);// 设置背景色
setBorder.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
二、设置边框:
setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
三、设置居中:
setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中
四、设置字体:
HSSFFont font = wb.createFont();
font.setFontName("黑体");
font.setFontHeightInPoints((short) 16);//设置字体大小
HSSFFont font2 = wb.createFont();
font2.setFontName("仿宋_GB2312");
font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
font2.setFontHeightInPoints((short) 12);
setBorder.setFont(font);//选择需要用到的字体格式
五、设置列宽:
sheet.setColumnWidth(0, 3766); //第一个参数代表列id(从0开始),第2个参数代表宽度值
六、设置自动换行:
setBorder.setWrapText(true);//设置自动换行
七、合并单元格:
Region region1 = new Region(0, (short) 0, 0, (short) 6);
//参数1:行号 参数2:起始列号 参数3:行号 参数4:终止列号
sheet.addMergedRegion(region1);
八、加边框
HSSFCellStyle cellStyle= wookBook.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyle.setBorderBottom(HSSFCellStyle.BorderBORDER_MEDIUM);
cellStyle.setBottomBorderColor(HSSFColor.BLACK.index);
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);
cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);
cellStyle.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
cellStyle.setRightBorderColor(HSSFColor.BLACK.index);
cellStyle.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
cellStyle.setTopBorderColor(HSSFColor.BLACK.index);