use*_*138 4 jexcelapi apache-poi
我有一项要求涉及从Excel电子表格中读取值,并填写电子表格供用户修改并重新上传到我们的应用程序.其中一个单元格包含5个字符的文本字符串,可以是字母,数字或两者的组合.其中一些字符串仅包含数字,并以零开头.因此,单元格类型为Text; 但是,当我使用Apache POI或JExcel填充电子表格供用户修改时,它总是设置为单元格类型常规.
有没有办法使用这些库中的任何一个,或者我还没有看到的其他一些excel api来指定一个单元格是否有Text类型?
我的同事刚刚找到了实现这一目标的方法.在JExcel中,可以使用WritableCellFormat来完成,例如:
WritableCellFormat numberAsTextFormat = new WritableCellFormat(NumberFormats.TEXT);
Run Code Online (Sandbox Code Playgroud)
然后,当您创建要添加到工作表的单元格时,您只需正常传递格式:
Label l = new Label(0, 0, stringVal, numberAsTextFormat);
Run Code Online (Sandbox Code Playgroud)
如果您正在使用Apache POI,您将创建一个HSSFCellStyle,然后设置它的数据格式如下:
HSSFCellStyle style = book.createCellStyle();
style.setDataFormat(BuiltInFormats.getBuiltInFormat("text"));
Run Code Online (Sandbox Code Playgroud)