当我们需要将数据导出为Excel文件时,利用Apache POI这个强大的Java API可以快速简便地完成。以下是POI通用导出Excel(.xls,.xlsx)的方法攻略。
引入依赖
首先需要在Maven中引入POI的依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
创建工作簿和工作表
通过POI的API创建工作簿和工作表:
Workbook workbook = new XSSFWorkbook(); //创建XLSX格式的工作簿或new HSSFWorkbook() //创建XLS格式的工作簿
Sheet sheet = workbook.createSheet("Sheet1"); //创建工作表
创建标题行和数据行
常规的Excel文件包括标题行和数据行。通过POI的API可以创建这些行:
Row headerRow = sheet.createRow(0); //创建标题行
Cell headerCell = headerRow.createCell(0); //创建单元格
headerCell.setCellValue("姓名"); //设置单元格的值
//创建其他标题单元格,以此类推
Row dataRow = sheet.createRow(1); //创建数据行
Cell dataCell1 = dataRow.createCell(0); //创建单元格
dataCell1.setCellValue("张三"); //设置单元格的值
//创建其他数据单元格,以此类推
设置样式和格式
可以通过POI的API设置单元格的样式和格式:
Cell cell = row.createCell(0);
cell.setCellValue("文本");
//设置单元格的样式
CellStyle style = workbook.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER);
cell.setCellStyle(style);
//设置单元格的格式
DataFormat format = workbook.createDataFormat();
style.setDataFormat(format.getFormat("0.00"));
导出Excel文件
最后,将工作簿写入文件中即可导出Excel文件:
FileOutputStream fos = new FileOutputStream("example.xlsx"); //创建输出流
workbook.write(fos); //写入工作簿到输出流
workbook.close(); //关闭工作簿
以下是两个示例:
示例1:导出一个简单的Excel文件
我们将导出一个只有一个工作表的Excel文件,其中包含姓名、年龄和地址三列,共计三行数据。
Workbook workbook = new XSSFWorkbook(); //创建XLSX格式的工作簿
Sheet sheet = workbook.createSheet("Sheet1"); //创建工作表
//创建标题行
Row headerRow = sheet.createRow(0);
Cell headerCell1 = headerRow.createCell(0);
headerCell1.setCellValue("姓名");
Cell headerCell2 = headerRow.createCell(1);
headerCell2.setCellValue("年龄");
Cell headerCell3 = headerRow.createCell(2);
headerCell3.setCellValue("地址");
//创建数据行
Row dataRow1 = sheet.createRow(1);
Cell dataCell11 = dataRow1.createCell(0);
dataCell11.setCellValue("张三");
Cell dataCell12 = dataRow1.createCell(1);
dataCell12.setCellValue(18);
Cell dataCell13 = dataRow1.createCell(2);
dataCell13.setCellValue("北京市海淀区");
Row dataRow2 = sheet.createRow(2);
Cell dataCell21 = dataRow2.createCell(0);
dataCell21.setCellValue("李四");
Cell dataCell22 = dataRow2.createCell(1);
dataCell22.setCellValue(20);
Cell dataCell23 = dataRow2.createCell(2);
dataCell23.setCellValue("上海市浦东区");
//导出Excel文件
FileOutputStream fos = new FileOutputStream("example.xlsx");
workbook.write(fos);
workbook.close();
示例2:导出一个带样式和格式的Excel文件
我们将导出一个带样式和格式的Excel文件,其中左侧的列数据显示为左对齐,右侧的列数据显示为右对齐,并且年龄列的数据显示为带2位小数的数字。
Workbook workbook = new XSSFWorkbook(); //创建XLSX格式的工作簿
Sheet sheet = workbook.createSheet("Sheet1"); //创建工作表
//创建标题行
Row headerRow = sheet.createRow(0);
Cell headerCell1 = headerRow.createCell(0);
headerCell1.setCellValue("姓名");
Cell headerCell2 = headerRow.createCell(1);
headerCell2.setCellValue("年龄");
//设置标题样式
CellStyle headerStyle = workbook.createCellStyle();
headerStyle.setAlignment(HorizontalAlignment.CENTER);
headerCell1.setCellStyle(headerStyle);
headerCell2.setCellStyle(headerStyle);
//创建数据行
Row dataRow1 = sheet.createRow(1);
Cell dataCell11 = dataRow1.createCell(0);
dataCell11.setCellValue("张三");
Cell dataCell12 = dataRow1.createCell(1);
dataCell12.setCellValue(18);
//设置数据样式
CellStyle leftStyle = workbook.createCellStyle();
leftStyle.setAlignment(HorizontalAlignment.LEFT);
dataCell11.setCellStyle(leftStyle);
CellStyle rightStyle = workbook.createCellStyle();
rightStyle.setAlignment(HorizontalAlignment.RIGHT);
DataFormat format = workbook.createDataFormat();
rightStyle.setDataFormat(format.getFormat("0.00"));
dataCell12.setCellStyle(rightStyle);
//导出Excel文件
FileOutputStream fos = new FileOutputStream("example.xlsx");
workbook.write(fos);
workbook.close();
以上就是关于POI通用导出Excel(.xls,.xlsx)的方法攻略的完整讲解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:POI通用导出Excel(.xls,.xlsx)的方法 - Python技术站