Apache POI 是一个 Java 库,用于操作 Microsoft Office 文档,包括 Excel
以下是一个简单的示例,演示如何使用 Apache POI 将两个日期参数之间的数据导出到 Excel 文件:
pom.xml
文件中添加以下依赖项:<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version>
</dependency>
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
public class ExcelExporter {
public static void main(String[] args) {
LocalDate startDate = LocalDate.of(2021, 1, 1);
LocalDate endDate = LocalDate.of(2021, 1, 10);
List<String[]> data = getDataBetweenDates(startDate, endDate);
exportDataToExcel(data, "output.xlsx");
}
private static List<String[]> getDataBetweenDates(LocalDate startDate, LocalDate endDate) {
List<String[]> data = new ArrayList<>();
// 在此处添加获取数据的逻辑,例如从数据库中查询
// 这里我们只是简单地生成一些示例数据
for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusDays(1)) {
data.add(new String[]{date.toString(), "Data for " + date});
}
return data;
}
private static void exportDataToExcel(List<String[]> data, String fileName) {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Data");
int rowIndex = 0;
for (String[] rowData : data) {
Row row = sheet.createRow(rowIndex++);
int cellIndex = 0;
for (String cellData : rowData) {
Cell cell = row.createCell(cellIndex++);
cell.setCellValue(cellData);
}
}
try (FileOutputStream fileOut = new FileOutputStream(fileName)) {
workbook.write(fileOut);
} catch (IOException e) {
e.printStackTrace();
}
try {
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在这个示例中,我们首先定义了两个日期参数 startDate
和 endDate
。然后,我们使用 getDataBetweenDates()
方法获取这两个日期之间的数据。在这个示例中,我们只是简单地生成了一些示例数据,但在实际应用中,您可能需要从数据库或其他数据源中查询数据。
接下来,我们使用 exportDataToExcel()
方法将数据导出到 Excel 文件。我们创建了一个新的 Workbook
和 Sheet
,然后将数据逐行写入表格。最后,我们将工作簿写入文件并关闭它。
运行此代码后,您将在当前目录下找到一个名为 output.xlsx
的 Excel 文件,其中包含两个日期参数之间的数据。
领取专属 10元无门槛券
手把手带您无忧上云