2

我有一个查询是,我生成了一个包含许多数据列的 excel 表。现在有一个名为 abc_ID 的列,来自后端的值是 long 类型,如下所示

//shown below how the value is passed for that column
private Long abc_Id;
abcdeed.abc_Id(13243534540L);

HSSFCellStyle[] cellStyles = new HSSFCellStyle[11];
    HSSFCellStyle styleHeader = null;
    HSSFCellStyle styleHeaderRBorder = null;
    HSSFCellStyle cellStyleReportName = null;
    HSSFCellStyle cellStyle00 = null;
    HSSFCellStyle style_WhiteBg = null;

我已经设置了 abc_ID 列的以下单元格样式

if(columnHeaders[i].equals("abc_Id") && abcdeed.getabc_Id() != null){
                    cell.setCellValue(abcdeed.getabc_Id());
                    cell.setCellStyle(cellStyles[9]);

现在的问题是,最后当生成 excel 工作表时,当我首先打开该 excel 工作表时,列 abc_Id 的值看起来是压缩的,并且其中的值最初是指数类型,这是因为该列是压缩类型我想要该列宽度应该扩大一并且值不应该是指数类型,我试图增加 cellStyles 但它不起作用。请提出解决方案。

4

2 回答 2

1

Use CELL_TYPE_STRING in all the rows for that particular Cell.

 rows.getCell(abc_Id_Cell_No).setCellType(Cell.CELL_TYPE_STRING);

and at the end

 Sheet.autoSizeColumn(abc_Id_Cell_No);

This will change all the cell values to String and autoSizeColumn will resize that column width.

于 2013-07-03T06:36:51.060 回答
0

您的单元格显示指数的原因与您的单元格宽度无关,而是与您放入其中的值的类型有关。

如果您的数字作为字符串输入,则单元格可能会隐藏整个值,但完整值仍将存在于单元格中。

因为您的值是一个数字,您需要编辑单元格的数字格式参数,以便它显示您希望在小数点后显示的位数。您可以检查有效的数字格式代码作为参考。

于 2013-07-03T04:51:06.043 回答