java - 未应用 Apache POI Java XSSFCell 数据格式
问题描述
目前我正在努力将 DataFormat 设置为特定的行。
这就是我的 Excel 工作表的样子。我有这 4 列。第 1 列应采用 DataFormat Number 第 2 列和第 3 列应采用 DataFormat Date 第 4 列可以
public static void createTableRow(Sheet sheet, List<String> EDIROWKeys, int col, CellStyle style , int lastRowNum){
if(sheet == null){
return;
}
int lastRow = lastRowNum;
int newRow = lastRow + 1;
Workbook wb = sheet.getWorkbook();
SimpleDateFormat format = new SimpleDateFormat();
CreationHelper helper = wb.getCreationHelper();
org.apache.poi.ss.usermodel.DataFormat date = wb.createDataFormat();
XSSFRow row = (XSSFRow) sheet.createRow(newRow);
if(row == null){
return;
}
int startCol = col;
for(String string : EDIROWKeys){
XSSFCell cell = row.createCell(startCol);
FOe.getFOPSessionContext().getDbContext().out().println(string);
if(style != null){
cell.setCellStyle(style);
}else {
XSSFWorkbook wbx = (XSSFWorkbook) sheet.getWorkbook();
XSSFDataFormat dataformat = wbx.createDataFormat();
XSSFCellStyle cs = wbx.createCellStyle();
if(startCol == 1){
cs.setDataFormat(dataformat.getFormat("#"));
}
cell.setCellStyle(cs);
}
cell.setCellValue(string);
startCol++;
}
return;
}
这是我用来创建行和列的方法 https://poi.apache.org/apidocs/dev/org/apache/poi/ss/usermodel/BuiltinFormats.html 这是我从中获取数据格式的资源. 我还尝试将这些带有 HssfDataformat 的 DataFormat 应用到我的单元格 - 也没有成功。
我感谢任何有用的输入:)
通过使用 setCellValue(Double);... 解决
if(string.matches("\\d+")){
cell.setCellValue(Double.valueOf(string));
startCol++;
continue;
}
解决方案
我看到一种可能的情况。如果方法参数style
为 null,XSSFCellStyle cs
则新样式不会应用于单元格。cell.setCellStyle(cs)
失踪了吗?
推荐阅读
- node.js - 使用 PATCH 请求通过 Express 更新 JSON 文件
- c# - 网格视图中的点赞和排序操作
- mongodb - _id 的 Mongodb 聚合查找不起作用
- html - CSS中的装饰艺术风格边框
- node.js - 无法使用 npm 安装 sqlite3 依赖项
- matplotlib - Jupyter Notebook 在 %matplotlib 笔记本模式下无法显示全宽图像
- android - Android:尝试使用数据绑定为 CardView 设置布局权重
- c++ - GCC 模板:错误:在 '<' 标记之前需要 ',' 或 '...'
- swift - 翠鸟更新 KFImage url 不会更新 SwiftUI 中的图像
- dynamic-programming - 0/K 背包。怎么解决?