如何设置Excel行的数据格式?
How to set the data format for the row in Excel?
我正在尝试将 Excel 中行的数据类型设置为日期格式 ('yyyy-MM-dd'),为此我编写了以下代码:
....
Row r = null;
CellStyle cellStyle = workbook.createCellStyle();
//CreationHelper createHelper = workbook.getCreationHelper();
cellStyle.setDataFormat(
workbook.createDataFormat().getFormat("yyyy-MM-dd"));
for(int i =0;i < 2;i++){
switch(i){
case 0:
r = sheet.getRow(0);
r.setRowStyle(cellStyle);
break;
case 1:
r = sheet.getRow(1);
r.setRowStyle(cellStyle);
break;
default:
break;
}
}
....
我只发布了前两行的格式以供参考。但是当我 运行 我的代码并打开 Excel sheet 并检查前两行中的单元格格式时,仅检查其一般格式。更改未反映在 Excel sheet 中。我没有明白我在这里做错了什么。
如果您是从头开始创建此 excel sheet,那么它还没有行。我在 getRow(0)
上获得了一个新的 sheet NullPointerException
。尝试使用 createRow(0)
代替:
public static void main(String[] args) throws JDOMException, IOException {
File excelFile = new File("C:/temp/test.xls");
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("sheetname");
Row r = null;
CellStyle cellStyle = workbook.createCellStyle();
// CreationHelper createHelper = workbook.getCreationHelper();
cellStyle.setDataFormat(workbook.createDataFormat().getFormat("yyyy-MM-dd"));
for (int i = 0; i < 2; i++) {
switch (i) {
case 0:
r = sheet.createRow(0);
r.setRowStyle(cellStyle);
break;
case 1:
r = sheet.createRow(1);
r.setRowStyle(cellStyle);
break;
default:
break;
}
}
try (FileOutputStream out = new FileOutputStream(excelFile)) {
workbook.write(out);
}
Desktop.getDesktop().open(excelFile);
}
我正在尝试将 Excel 中行的数据类型设置为日期格式 ('yyyy-MM-dd'),为此我编写了以下代码:
....
Row r = null;
CellStyle cellStyle = workbook.createCellStyle();
//CreationHelper createHelper = workbook.getCreationHelper();
cellStyle.setDataFormat(
workbook.createDataFormat().getFormat("yyyy-MM-dd"));
for(int i =0;i < 2;i++){
switch(i){
case 0:
r = sheet.getRow(0);
r.setRowStyle(cellStyle);
break;
case 1:
r = sheet.getRow(1);
r.setRowStyle(cellStyle);
break;
default:
break;
}
}
....
我只发布了前两行的格式以供参考。但是当我 运行 我的代码并打开 Excel sheet 并检查前两行中的单元格格式时,仅检查其一般格式。更改未反映在 Excel sheet 中。我没有明白我在这里做错了什么。
如果您是从头开始创建此 excel sheet,那么它还没有行。我在 getRow(0)
上获得了一个新的 sheet NullPointerException
。尝试使用 createRow(0)
代替:
public static void main(String[] args) throws JDOMException, IOException {
File excelFile = new File("C:/temp/test.xls");
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("sheetname");
Row r = null;
CellStyle cellStyle = workbook.createCellStyle();
// CreationHelper createHelper = workbook.getCreationHelper();
cellStyle.setDataFormat(workbook.createDataFormat().getFormat("yyyy-MM-dd"));
for (int i = 0; i < 2; i++) {
switch (i) {
case 0:
r = sheet.createRow(0);
r.setRowStyle(cellStyle);
break;
case 1:
r = sheet.createRow(1);
r.setRowStyle(cellStyle);
break;
default:
break;
}
}
try (FileOutputStream out = new FileOutputStream(excelFile)) {
workbook.write(out);
}
Desktop.getDesktop().open(excelFile);
}