0

我从一个 excel 文件中获取电话号码并使用以下代码写入另一个 excel 文件

cellph = row.getCell(3);
Object phone = cellph.getNumericCellValue();
String strphone = phone.toString();
cellfour.setCellType(cellfour.CELL_TYPE_STRING);
cellfour.setCellValue("0"+strphone);

它将电话号码写为 09.8546586。我想把它写成 098546586(没有精度值)。怎么做?

4

1 回答 1

1

你的问题不在于写入。您的问题在于read,这就是给您浮点数的原因

从您的代码和描述来看,您的电话号码似乎以数字单元格的形式存储在 Excel 中,并应用了整数格式。这意味着当您检索单元格时,您将获得一个double数字和一个单元格格式,该格式会告诉您如何像 Excel 那样对其进行格式化。

我认为您可能想要做的更像是:

DataFormatter formatter = new DataFormatter();

cellph = row.getCell(3);
String strphone = "(none available)";

if (cellph.getCellType() == Cell.CELL_TYPE_NUMERIC) {
   // Number with a format
   strphone = "0" + formatter.formatCellValue(cellph);
}
if (cellph.getCellType() == Cell.CELL_TYPE_STRING) {
   // String, eg they typed ' before the number
   strphone = "0" + cellph.getStringCellValue();
}
// For all other types, we'll show the none available message

cellfour.setCellType(cellfour.CELL_TYPE_STRING);
cellfour.setCellValue(strphone);
于 2012-10-30T10:25:16.823 回答