【问题标题】:JXL Number Format and Cell TypeJXL 数字格式和单元格类型
【发布时间】:2016-02-08 23:36:58
【问题描述】:

我正在使用 JXL 编写 Excel 文件。客户希望某一列显示带一位小数的数字。他们还希望单元格类型为“数字”。当我使用以下(测试)代码时,数字显示正确,但单元格类型为“自定义”。

File excelFile = new File("C:\\Users\\Rachel\\Desktop\\TestFile.xls");

WritableWorkbook excelBook = Workbook.createWorkbook(excelFile);
WritableSheet excelSheet = excelBook.createSheet("Test Sheet", 0);

WritableFont numberFont = new WritableFont(WritableFont.ARIAL);
WritableCellFormat numberFormat = new WritableCellFormat(numberFont, new NumberFormat("#0.0"));

Number numberCell = new Number(0, 0, 25, numberFormat);
excelSheet.addCell(numberCell);

excelBook.write();
excelBook.close();

如果我将数字格式更改为 NumberFormats 中的变量之一(例如 NumberFormats.INTEGER),则单元格类型是正确的。但是数字当然显示为整数。我在 NumberFormats 中找不到符合我需要的变量。

有谁知道正确显示数字和单元格类型的方法?我需要以 1 个小数显示的所有数字(即使它们是整数)。而且我不能切换到任何其他技术,我必须使用 JXL。

【问题讨论】:

  • 我知道这个问题是在 2011 年提出的。你设法弄清楚了吗?虽然我有其他选择是使用 Apache POI,但我遇到了同样的问题。
  • 我忘记了我最终做了什么,现在在另一家公司工作。对不起

标签: java excel jxl


【解决方案1】:

如果这不是您想要的,我很抱歉。但是,我对您的需求的了解是 cell type=number 小数点后 1 位。您可以定义自己的数字格式。您可以使用这种格式(“#.0”)来获取您想要的(例如:900.0,23.0,34324.0 和 .etc)

NumberFormat decimalNo = new NumberFormat("#.0"); 
WritableCellFormat numberFormat = new WritableCellFormat(decimalNo);
//write to datasheet
Number numberCell = new Number(0, 0, 25, numberFormat); 
excelSheet.addCell(numberCell);

【讨论】:

  • 我收到一个错误:“NumberFormat”是抽象的。无法实例化
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 1970-01-01
  • 2015-09-30
  • 2021-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多