下面是关于"Java使用POI导出Excel的方法"的完整攻略。
简介
POI是Apache基金会的开源项目,可以用Java编写程序生成Microsoft Office文档格式,包括Word、Excel和PowerPoint。POI能够读取和写入Microsoft Office文件的各种属性和内容。在本教程中,我们将学习如何利用POI将数据导出到Excel文件。
环境准备
为了使用POI,我们需要在项目中添加相关依赖。在Maven项目中,我们可以在pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version>
</dependency>
导出Excel
创建Workbook
首先,我们需要创建一个新的Workbook实例。Workbook是Excel文档的顶层容器,它可以包含多个Sheet。
Workbook workbook = new XSSFWorkbook();
创建Sheet
接下来,我们在Workbook中创建Sheet。
Sheet sheet = workbook.createSheet("Sheet1");
创建Header
创建表头,可以使用Excel的第一行来显示表头。我们可以创建一个Row实例,然后使用Cell实例为每个单元格添加文本。
Row header = sheet.createRow(0);
Cell cell1 = header.createCell(0);
cell1.setCellValue("编号");
Cell cell2 = header.createCell(1);
cell2.setCellValue("姓名");
添加数据
我们可以循环读取一个数据源列表,并将数据逐一写入Sheet中的每一行。
int rowIndex = 1;
for (int i = 0; i< dataList.size(); i++) {
Row row = sheet.createRow(rowIndex++);
row.createCell(0).setCellValue(dataList.get(i).getId());
row.createCell(1).setCellValue(dataList.get(i).getName());
}
写入到文件中
最后,我们可以将Workbook写入到文件中。
try (FileOutputStream outputStream = new FileOutputStream("sample.xlsx")) {
workbook.write(outputStream);
}
示例1
假设我们有一个学生列表,每个学生有id和name两个属性。现在我们要将学生列表导出到Excel文件中。
public class Student {
private int id;
private String name;
// getter和setter
}
public class ExportStudentList {
public void export(List<Student> studentList) throws IOException {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
Row header = sheet.createRow(0);
Cell cell1 = header.createCell(0);
cell1.setCellValue("编号");
Cell cell2 = header.createCell(1);
cell2.setCellValue("姓名");
int rowIndex = 1;
for (int i = 0; i< studentList.size(); i++) {
Row row = sheet.createRow(rowIndex++);
row.createCell(0).setCellValue(studentList.get(i).getId());
row.createCell(1).setCellValue(studentList.get(i).getName());
}
try (FileOutputStream outputStream = new FileOutputStream("studentList.xlsx")) {
workbook.write(outputStream);
}
}
}
示例2
有时候我们需要在单元格中添加样式,比如对齐方式、字体样式等。我们可以通过CellStyle实例来实现。
public class ExportStudentListWithStyle {
public void export(List<Student> studentList) throws IOException {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet1");
Font headerFont = workbook.createFont();
headerFont.setBold(true);
headerFont.setFontHeightInPoints((short) 14);
CellStyle headerStyle = workbook.createCellStyle();
headerStyle.setFont(headerFont);
headerStyle.setAlignment(HorizontalAlignment.CENTER);
Row header = sheet.createRow(0);
Cell cell1 = header.createCell(0);
cell1.setCellValue("编号");
cell1.setCellStyle(headerStyle);
Cell cell2 = header.createCell(1);
cell2.setCellValue("姓名");
cell2.setCellStyle(headerStyle);
int rowIndex = 1;
CellStyle dataStyle = workbook.createCellStyle();
dataStyle.setAlignment(HorizontalAlignment.LEFT);
for (int i = 0; i< studentList.size(); i++) {
Row row = sheet.createRow(rowIndex++);
row.createCell(0).setCellValue(studentList.get(i).getId());
row.getCell(0).setCellStyle(dataStyle);
row.createCell(1).setCellValue(studentList.get(i).getName());
row.getCell(1).setCellStyle(dataStyle);
}
try (FileOutputStream outputStream = new FileOutputStream("studentListWithStyle.xlsx")) {
workbook.write(outputStream);
}
}
}
以上就是使用POI导出Excel的示例代码。通过这些代码,你可以了解到如何使用POI将数据导出到Excel中,并且在单元格中添加样式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java使用poi导出Excel的方法 - Python技术站