我正在使用 Apache-POI 3.14。我需要将单元格锁定为“文本”格式。我的单元格中的数据可能全是数字,但它仍被视为字符串。当我写单元格时,我是这样做的:
cell.setCellValue("001");
cell.setCellType(Cell.CELL_TYPE_STRING);
当我在 Excel 中打开输出工作簿时,单元格包含正确的值(“001”),并且在角落显示一个绿色小三角形。将鼠标悬停在感叹号上会显示悬停文本 The number in this cell is formatted as text or preceded by an apostrophe
。当我查看单元格格式时(右键单击 -> 设置单元格格式),“类别”显示为“常规”。我希望这是“文本”。
当用户通过仅输入数字来修改单元格中的值时,就会出现问题。因为“Category”是“General”,所以输入值并显示为数字,删除前导零并右对齐。
如何获得与 Excel 的“设置单元格格式”对话框相同的结果?
原文由 Steve H. 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以尝试通过将单元格格式设置为文本
注意:CellStyles 应该重新用于所有适用的单元格,不要为每个单元格创建新的。
您也可以尝试使用 .xlsx 格式中的“忽略错误”功能,但对它的支持尚未完全完成,请参阅 Issue 46136 和 Issue 58641 进行一些正在进行的讨论。
另请参阅 此 MSDN 页面 以获取一些其他信息