我需要使用Java库Apache POI for spreadsheets生成.xls(Excel)文件。Apache POI for Excel:将单元格类型设置为整个列的“文本”
该文件将包含列A中的电话号码列表,格式为“0221 ....”或“+49221 ...” - 因此Excel默认将其解释为数字单元格。这很糟糕,因为领先的0或+会被修剪。
为了解决这个问题,我可以使用cell.setCellType(Cell.CELL_TYPE_STRING)
,它工作正常,但仅限于我为此设置的特定单元。
我该如何应用整个列的设置(即使对于所有剩余的单元格,用户将输入额外的电话号码)?
在Excel中,这是可能的:选择整列,并应用细胞类型(设置保存后生还/加载的文件。)
但我找不到POI的正确方法。
- 首先我假设它应该是类似
sheet.setDefaultCellType(int colNum)
的东西。但我找不到像这样的东西(可能我只是瞎了?图书馆有很多similar methods用于应用文本样式,如“对齐中心”等) - 然后我想:也许它只能应用到NamedRange或类似的东西,但我还没有设法弄清楚这是如何工作的...
看起来不错!一旦我回到项目中,我会尝试这个解决方案。谢谢! –
This Works ... Thanks! – jahroy
我也这么做了。 var cllstyl = this.Workbook.CreateCellStyle(); var workbook = new HSSFWorkbook(); var currDataFormat = workbook.CreateDataFormat(); cllstyl.DataFormat = currDataFormat.GetFormat(“@”); sheet.SetDefaultColumnStyle(1,cllstyl);但它不显示“文本”格式,而是显示“日期”。请帮助我。 –