求助一下大佬
今天在工作中碰到了一个问题,用easypoi导出excel的时候,实体中BigDecimal类型的属性设置了对应的格式为saleAmount.setNumFormat("#.00");,同时设置类型为double,但是导出时excel还是显示单元格格式为文本,我想问如何设置单元格格式为数值或者日期等类型呢?
代码如下:
```
public class Main {
public static void main(String[] args) {
File file = new File("D:\\kake_work\\excel\\excel_test1.xlsx");
mkdir(file);
int size = 10;
try (OutputStream outputStream = Files.newOutputStream(file.toPath())) {
ExportParams params = new ExportParams();
params.setSheetName("订单页");
params.setType(ExcelType.XSSF);
List<OrderReport> list = new ArrayList<>();
OrderReport report = new OrderReport();
report.setBaseAmountRmb(BigDecimal.valueOf(99.13));
report.setSaleAmount(BigDecimal.valueOf(100.45));
report.setCheckindate(new Date());
OrderReportReq request = new OrderReportReq();
for (int i = 0; i < size; i++) {
list.add(report);
}
List<ExcelExportEntity> dynamicExportColumnSetting = getExcelExportEntities();
Workbook sheets = ExcelExportUtil.exportBigExcel(params, dynamicExportColumnSetting, (queryParams, page) -> {
OrderReportReq req = (OrderReportReq) queryParams;
int listIndex = page - 1;
if (listIndex < size) {
List<OrderReport> rows = list;
for (OrderReport row : rows) {
row.setAdults(1);
}
return new ArrayList<>(rows);
}
return null;
}, request);
sheets.write(outputStream);
} catch (Exception e) {
System.out.println("excel导出发生异常");
e.printStackTrace();
} finally {
//remove(file);
}
System.out.println("excel导出成功!");
}
private static List<ExcelExportEntity> getExcelExportEntities() {
List<ExcelExportEntity> dynamicExportColumnSetting = new ArrayList<>();
ExcelExportEntity baseAmountRmb = new ExcelExportEntity("底价CNY", "baseAmountRmb");
baseAmountRmb.setType(BaseEntityTypeConstants.DOUBLE_TYPE);
baseAmountRmb.setNumFormat("#.00");
dynamicExportColumnSetting.add(baseAmountRmb);
ExcelExportEntity saleAmount = new ExcelExportEntity("售价CNY", "saleAmount");
saleAmount.setNumFormat("#.00");
saleAmount.setType(BaseEntityTypeConstants.DOUBLE_TYPE);
dynamicExportColumnSetting.add(saleAmount);
ExcelExportEntity checkInDate = new ExcelExportEntity("入住日期", "checkindate");
checkInDate.setFormat("yyyy/MM/dd");
//checkInDate.setType(BaseEntityTypeConstants.DATE_TYPE);
dynamicExportColumnSetting.add(checkInDate);
return dynamicExportColumnSetting;
}
private static void mkdir(File file) {
if (!file.exists()) {
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
}
}
private static void remove(File file) {
if (file != null && file.exists()) {
file.delete();
}
}
}
```
代码如下:
```
public class Main {
public static void main(String[] args) {
File file = new File("D:\\kake_work\\excel\\excel_test1.xlsx");
mkdir(file);
int size = 10;
try (OutputStream outputStream = Files.newOutputStream(file.toPath())) {
ExportParams params = new ExportParams();
params.setSheetName("订单页");
params.setType(ExcelType.XSSF);
List<OrderReport> list = new ArrayList<>();
OrderReport report = new OrderReport();
report.setBaseAmountRmb(BigDecimal.valueOf(99.13));
report.setSaleAmount(BigDecimal.valueOf(100.45));
report.setCheckindate(new Date());
OrderReportReq request = new OrderReportReq();
for (int i = 0; i < size; i++) {
list.add(report);
}
List<ExcelExportEntity> dynamicExportColumnSetting = getExcelExportEntities();
Workbook sheets = ExcelExportUtil.exportBigExcel(params, dynamicExportColumnSetting, (queryParams, page) -> {
OrderReportReq req = (OrderReportReq) queryParams;
int listIndex = page - 1;
if (listIndex < size) {
List<OrderReport> rows = list;
for (OrderReport row : rows) {
row.setAdults(1);
}
return new ArrayList<>(rows);
}
return null;
}, request);
sheets.write(outputStream);
} catch (Exception e) {
System.out.println("excel导出发生异常");
e.printStackTrace();
} finally {
//remove(file);
}
System.out.println("excel导出成功!");
}
private static List<ExcelExportEntity> getExcelExportEntities() {
List<ExcelExportEntity> dynamicExportColumnSetting = new ArrayList<>();
ExcelExportEntity baseAmountRmb = new ExcelExportEntity("底价CNY", "baseAmountRmb");
baseAmountRmb.setType(BaseEntityTypeConstants.DOUBLE_TYPE);
baseAmountRmb.setNumFormat("#.00");
dynamicExportColumnSetting.add(baseAmountRmb);
ExcelExportEntity saleAmount = new ExcelExportEntity("售价CNY", "saleAmount");
saleAmount.setNumFormat("#.00");
saleAmount.setType(BaseEntityTypeConstants.DOUBLE_TYPE);
dynamicExportColumnSetting.add(saleAmount);
ExcelExportEntity checkInDate = new ExcelExportEntity("入住日期", "checkindate");
checkInDate.setFormat("yyyy/MM/dd");
//checkInDate.setType(BaseEntityTypeConstants.DATE_TYPE);
dynamicExportColumnSetting.add(checkInDate);
return dynamicExportColumnSetting;
}
private static void mkdir(File file) {
if (!file.exists()) {
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
}
}
private static void remove(File file) {
if (file != null && file.exists()) {
file.delete();
}
}
}
```
全部评论
相关推荐
点赞 评论 收藏
分享