从double转换为String但保持前导零

时间:2016-08-18 16:16:08

标签: java string excel parsing double

我正在尝试从double转换为String。它正在工作,但它正在删除所有前导零。例如,00010000被更改为10000,01被更改为1.我正在尝试读取xls文件并且证明是困难的。

运行程序时不知道数字位数,因此我无法想出解决此问题的方法。有人可以帮忙吗?

以下是我的代码:

while (cells.hasNext()) {
          cell = (HSSFCell) cells.next();
          if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
            lineList.add(cell.getStringCellValue());
          } else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
            String s = String.valueOf(cell.getNumericCellValue());
            lineList.add(s);
          }
        }

1 个答案:

答案 0 :(得分:0)

我猜这里发生的事情是Excel中的数字数据格式为00010000。但是,在Excel内部,这些数据可能只是存储为1000010000.0等,并且由于您的格式化而导致前导零。当您使用HSSF将此数值数据导入Java时,它也会以1000010000.0等形式出现。正如其他人已经提到的那样,Java中没有“前导”零{ {1}}原始类型。所以当你转换为double时,当然没有前导零,因为它们根本就不存在。

可能的解决方法:

如果将Excel数字列格式化为文本,然后将其导入,则应为以下String条件触发这些值:

if

然后,您可以直接读取文本值,引导零和全部,并保留Excel电子表格中存在的信息。

我没有对此进行测试,但如果我遇到您的问题,这可能是我会尝试的。