使用poi导出Excel表格

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);

猜你喜欢

转载自blog.csdn.net/zspppppp/article/details/79289472