java数据导出到excel
时间: 2023-09-14 13:12:08 浏览: 50
要将Java数据导出到Excel,可以使用Apache POI库。以下是一个示例代码:
```java
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelExporter {
public static void main(String[] args) throws IOException {
// 创建一个工作簿
Workbook workbook = new XSSFWorkbook();
// 创建一个工作表
Sheet sheet = workbook.createSheet("Employee Data");
// 设置日期格式
CellStyle dateStyle = workbook.createCellStyle();
DataFormat dateFormat = workbook.createDataFormat();
dateStyle.setDataFormat(dateFormat.getFormat("yyyy/mm/dd"));
// 创建表头行
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("ID");
headerRow.createCell(1).setCellValue("Name");
headerRow.createCell(2).setCellValue("Role");
headerRow.createCell(3).setCellValue("Salary");
headerRow.createCell(4).setCellValue("Joining Date");
// 填充数据行
List<Employee> employees = getEmployeeData();
int rowNum = 1;
for (Employee employee : employees) {
Row row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(employee.getId());
row.createCell(1).setCellValue(employee.getName());
row.createCell(2).setCellValue(employee.getRole());
row.createCell(3).setCellValue(employee.getSalary());
row.createCell(4).setCellValue(employee.getJoiningDate());
row.getCell(4).setCellStyle(dateStyle);
}
// 自动调整列宽
for (int i = 0; i < headerRow.getLastCellNum(); i++) {
sheet.autoSizeColumn(i);
}
// 设置文件名并写入文件
String fileName = "employee_data.xlsx";
FileOutputStream outputStream = new FileOutputStream(fileName);
workbook.write(outputStream);
workbook.close();
outputStream.close();
System.out.println("Excel file created successfully.");
}
// 生成示例数据
private static List<Employee> getEmployeeData() {
List<Employee> employees = new ArrayList<>();
employees.add(new Employee(101, "John Doe", "Manager", 50000, new Date()));
employees.add(new Employee(102, "Jane Doe", "Developer", 40000, new Date()));
employees.add(new Employee(103, "Bob Smith", "Developer", 40000, new Date()));
employees.add(new Employee(104, "Mary Smith", "Tester", 30000, new Date()));
return employees;
}
}
class Employee {
private int id;
private String name;
private String role;
private int salary;
private Date joiningDate;
public Employee(int id, String name, String role, int salary, Date joiningDate) {
this.id = id;
this.name = name;
this.role = role;
this.salary = salary;
this.joiningDate = joiningDate;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getRole() {
return role;
}
public int getSalary() {
return salary;
}
public Date getJoiningDate() {
return joiningDate;
}
}
```
这个示例代码创建了一个包含员工数据的Excel文件。您可以根据自己的需求修改代码来导出自己的数据。