我正在从一个Excel工作表中读取单元格值,然后使用Apache POI将其放在另一个工作表中。对于一个特定的列,我只想复制该单元格的编号。我自然地尝试过:
newCell.setCellValue(oldCell.getRichStringCellValue().replaceAll("\\D+",""));
我了解到我不能直接在replaceAll()
上使用RichTextString,因为它不是String
类型的,这就是为什么我使用方法getString()
并尝试了此操作的原因:
newCell.setCellValue(oldCell.getRichStringCellValue().getString().replaceAll("\\D+",""));
这有效,但是通过将其转换为String
,我显然丢失了RichTextString包含的所有其他信息(应用的字体等)。这就是为什么我的问题是:我如何只提取数字,而保留RichTextString不变?