Java 超详细实现导入导出 (包含时间转换问题和样式)
warning:
这篇文章距离上次修改已过192天,其中的内容可能已经有所变动。
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
public class ExcelExportExample {
public static void main(String[] args) throws IOException {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("ExampleSheet");
// 创建表头
Row header = sheet.createRow(0);
header.createCell(0).setCellValue("序号");
header.createCell(1).setCellValue("姓名");
header.createCell(2).setCellValue("生日");
// 填充数据
for (int rowNum = 1; rowNum < 10; rowNum++) {
Row row = sheet.createRow(rowNum);
for (int cellNum = 0; cellNum < 3; cellNum++) {
Cell cell = row.createCell(cellNum);
switch (cellNum) {
case 0:
cell.setCellValue(rowNum);
break;
case 1:
cell.setCellValue("姓名" + rowNum);
break;
case 2:
cell.setCellValue(setDateCellStyle(row.createCell(cellNum), getRandomDate()));
break;
}
}
}
// 写入到文件
try (FileOutputStream outputStream = new FileOutputStream("example.xlsx")) {
workbook.write(outputStream);
}
workbook.close();
}
private static Date getRandomDate() {
// 这里生成一个随机日期,仅用作示例
long randomDateMillis = System.currentTimeMillis() - (long) (Math.random() * 10000);
return new Date(randomDateMillis);
}
private static CellStyle setDateCellStyle(Cell cell, Date date) {
CreationHelper createHelper = cell.getSheet().getWorkbook().getCreationHelper();
CellStyle cellStyle = cell.getSheet().getWorkbook().createCellStyle();
cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("yyyy-MM-dd"));
cell.setCellStyle(cellStyle);
cell.setCellValue(date);
return cellStyle;
}
}
这段代码使用Apache POI库创建了一个Excel文件,并填充了数据和样式。其中,setDateCellStyle
方法设置了日期的样式,并处理了时间转换问题。这是一个简化的例子,展示了如何使用Apache POI处理Excel导出的基本方法。
评论已关闭