当前位置: 首页 > 知识库问答 >
问题:

在POI中写入excel工作表前设置字符串格式

钱选
2023-03-14

我有一个字符串数组,其值如下:

 String[] myArray = new String[4];
 myArray[0] = "one";
 myArray[1] = "2012-02-25";
 myArray[2] = "12345.58";
 myArray[3] = "1245";

我想使用POI将此数组写入excel工作表中,其中每个值将在新列中显示,如下所示:

Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("mySheet");
Row myRow = sheet.createRow(1);
Cell myCell;

for(int i=0;i < my.length;i++){
   myCell = myRow.createCell(i);
   myCell.setCellValue(myArray[i]);
   sheet.autoSizeColumn(i);
}

FileOutputStream out;

try {
        out = new FileOutputStream("myOutputFile");
        wb.write(out);
        out.close();
} catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

感谢阅读!

共有1个答案

松英喆
2023-03-14

您可以使用以下代码..

 if(myArray[i].matches(".*\\d.*") && ! myArray[i].contains("-"))    //For date assuming '-' would be a separator always
         {
            //Its a number(int or float).. Excel treats both as numeric

            HSSFCellStyle style = (HSSFCellStyle) wb.createCellStyle();
            style.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));
            mycell.setCellStyle(style);
            mycell.setCellValue(Float.parseFloat(myArray[i]));
         }
         else if(myArray[i].contains("-"))
         {
            // Its a date
            CellStyle cellStyle = wb.createCellStyle();
            cellStyle.setDataFormat(createHelper.createDataFormat().getFormat("m/d/yy h:mm"));
            mycell.setCellStyle(cellStyle);
            mycell.setCellValue(myArray[i]);
         }
         else
         {
            // Its a string/Text..
            mycell.setCellValue(myArray[i]);
         }
 类似资料:
  • 问题内容: 如何在poi的帮助下在单元格中写下我的全部价值? 即如果值是1000.000,那么我怎么能写出完整的值而不会在“之后”截断000。与POI?表示我想要全部价值。 就我而言,只需要1000,但这对我来说不是正确的格式。 问题答案: 您必须设置要存储此数字的单元格的“格式”。示例代码: 来源:http : //poi.apache.org/spreadsheet/quick- guide.

  • 我想在Excel中将“2655.32”输出为“$2655.32”。

  • 我正在使用ApachePOI从Spring应用程序写入Excel文件(遵循本教程:https://www.roytuts.com/generic-way-of-writing-data-in-excel-using-apache-poi/。我的函数的身体几乎是一样的。) 然后我把这个方法叫做: 调试时,我可以看到正确的值被传递到单元格。但是当我通过workbook.write(outputStre

  • 问题内容: 使用Apache POI创建Excel文档时,是否可以更改页面大小和布局?默认值是A4垂直,而我需要A6水平(横向)。 我认为这个问题不需要代码示例,Excel文档的创建与手册中所述的一样: 问题答案: HSSFPrinterSetup Javadoc

  • 我有一个关键字列表,我想从中创建一个名为的特定查询。我有一个查询后缀,我想返回一个字符串,它以开头,后面跟着每个关键字从: 大概是这样的: 我希望返回的字符串看起来像这样:

  • 我使用apache poi将一个CSV文件重写到Excel,对于hh:mm:ss这样的字符串,我需要将其转换为适当的Excel数据类型,以便用户可以对该列应用sum()函数。我尝试了不同的数据类型,但当我打开excel文件时,我无法对该列进行求和,求和总是显示为“0:00:00”,即使单击excel中的该列显示为“Time”数据类型, 下面是我的代码: