1.POI简单介绍

Apache POI 是用Java 编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程式对 Microsoft Office 格式档案读和写的功能
  • HSSF 提供读写Microsoft Excel XLS格式档案的功能。
  • XSSF 提供读写Microsoft Excel OOXML XLSX格式档案的功能。
  • HWPF 提供读写Microsoft Word DOC格式档案的功能。
  • HSLF 提供读写Microsoft PowerPoint格式档案的功能。
  • HDGF 提供读Microsoft Visio格式档案的功能。
  • HPBF 提供读Microsoft Publisher格式档案的功能。
  • HSMF 提供读Microsoft Outlook格式档案的功能。

2.步骤

1.环境配置:导入jar包
<dependency>  <groupId>org.apache.poi</groupId>  <artifactId>poi</artifactId>  <version>3.16</version></dependency>
2.创建一个Excel工作簿
 @Testpublic  void test() throws IOException {//定义一个工作蒲Workbook wb = new HSSFWorkbook();//定义一个输出流FileOutputStream fileOutputStream = new FileOutputStream("/home/ubuntu/Desktop/Excel工作蒲.xls");//写入在输出流        wb.write(fileOutputStream);//关闭输出流        fileOutputStream.close();
    }

Java使用Apache POI导出Excel_Apache POI

3.创建一个sheet页
   @Testpublic void sheet() throws IOException {//定义一个工作蒲Workbook wb = new HSSFWorkbook();//创建sheet页面wb.createSheet("第一个sheet页");
        wb.createSheet("第二个sheet页");//定义一个输出流FileOutputStream fileOutputStream = new FileOutputStream("/home/ubuntu/Desktop/Excel工作蒲带有sheet页.xls");//写入在输出流        wb.write(fileOutputStream);//关闭输出流        fileOutputStream.close();
    }

Java使用Apache POI导出Excel_Java_02

 

 Java使用Apache POI导出Excel_Java_03

4.创建行和列
 @Testpublic void row() throws IOException {//定义一个工作蒲Workbook wb = new HSSFWorkbook();//创建sheet页面Sheet sheet = wb.createSheet("学生信息sheet页");//创建一行Row row = sheet.createRow(0);//创建一个单元格Cell cell =null;for(int i = 0 ;i<5;i++){
            row.createCell(i).setCellValue("写入信息:单元格内容"+i);
        }//定义一个输出流FileOutputStream fileOutputStream = new FileOutputStream("/home/ubuntu/Desktop/Excel学生信息.xls");//写入在输出流        wb.write(fileOutputStream);//关闭输出流        fileOutputStream.close();
    }

Java使用Apache POI导出Excel_Apache POI_04

5.创建一个时间样式到Excel
 @Testpublic void date() throws IOException {//定义一个工作蒲Workbook wb = new HSSFWorkbook();//创建sheet页面Sheet sheet = wb.createSheet("时间sheet页");//创建一行Row row = sheet.createRow(0);//创建一个单元格Cell cell = row.createCell(0);
        cell.setCellValue(new Date());

        CreationHelper creationHelper = wb.getCreationHelper();//设置单元格样式CellStyle cellStyle = wb.createCellStyle();
        cellStyle.setDataFormat(creationHelper.createDataFormat().getFormat("YYYY-MM-DD hh:mm:ss"));
        cell = row.createCell(1);
        cell.setCellValue(new Date());//设置日期样式        cell.setCellStyle(cellStyle);//定义一个输出流FileOutputStream fileOutputStream = new FileOutputStream("/home/ubuntu/Desktop/Excel日期格式.xls");//写入在输出流        wb.write(fileOutputStream);//关闭输出流        fileOutputStream.close();
    }

Java使用Apache POI导出Excel_Excel_05

6.单元格对其方式及行高
@Testpublic void style() throws IOException {//定义一个工作蒲Workbook wb = new HSSFWorkbook();//创建sheet页面Sheet sheet = wb.createSheet("第一个sheet");//创建一行Row row = sheet.createRow(0);//设置行高row.setHeightInPoints(30);//创建一个单元格createCell(wb,row,(short)0,HSSFCellStyle.ALIGN_CENTER,HSSFCellStyle.VERTICAL_BOTTOM);
        createCell(wb,row,(short)1,HSSFCellStyle.ALIGN_JUSTIFY,HSSFCellStyle.VERTICAL_CENTER);
        createCell(wb,row,(short)2,HSSFCellStyle.ALIGN_CENTER_SELECTION,HSSFCellStyle.VERTICAL_JUSTIFY);//定义一个输出流FileOutputStream fileOutputStream = new FileOutputStream("/home/ubuntu/Desktop/Excel样式.xls");//写入在输出流        wb.write(fileOutputStream);//关闭输出流        fileOutputStream.close();
    }/** * 创建一个单元格设置对应的对其方式
     * @param workbook 工作蒲
     * @param row 行
     * @param column 列     */private static void createCell(Workbook workbook, Row row, short column,short halign,short valign){
        Cell cell = row.createCell(column);//创建单元格cell.setCellValue(new HSSFRichTextString("我是富文本"));//设置值CellStyle cellStyle = workbook.createCellStyle();//创建样式cellStyle.setAlignment(halign);//设置单元格水平方向对其方式cellStyle.setVerticalAlignment(valign);//设置单元格垂直方向对其方式        cell.setCellStyle(cellStyle);
    }

Java使用Apache POI导出Excel_Java_06

合并单元格
 @Testpublic void test1() throws IOException {//定义一个工作蒲Workbook wb = new HSSFWorkbook();//创建sheet页面Sheet sheet = wb.createSheet("第一个sheet");//创建一行Row row = sheet.createRow(1);//设置行高row.setHeightInPoints(30);//创建一个单元格Cell cell = row.createCell(1);
        cell.setCellValue("合并单元格");//合并单元格(起始行,结束行,起始列,结束列)sheet.addMergedRegion(new CellRangeAddress(1,2,1,2));//定义一个输出流FileOutputStream fileOutputStream = new FileOutputStream("/home/ubuntu/Desktop/Excel样式.xls");//写入在输出流        wb.write(fileOutputStream);//关闭输出流        fileOutputStream.close();
    }

Java使用Apache POI导出Excel_Java_07