java Excel工作表删除以零开头的数字的零
我需要编写CSV
/Xls
文件,其中的列具有类似00078
的数字,但即使将数字写入字符串,excel工作表也会将其显示为78
我尝试了apache poi
库,并尝试将单元格类型设置为字符串
HSSFWorkbook workbook = new HSSFWorkbook();
// Create a blank sheet
HSSFSheet sheet = workbook.createSheet("student Details");
// This data needs to be written (Object[])
Map<String, Object[]> data = new TreeMap<String, Object[]>();
data.put("1", new Object[]{ "ID", "NAME", "LASTNAME" });
data.put("2", new Object[]{ 00078, "Pankaj", "Kumar" });
// Iterate over data and write to sheet
Set<String> keyset = data.keySet();
int rownum = 0;
for (String key : keyset) {
// this creates a new row in the sheet
Row row = sheet.createRow(rownum++);
Object[] objArr = data.get(key);
int cellnum = 0;
for (Object obj : objArr) {
// this line creates a cell in the next column of that row
Cell cell = row.createCell(cellnum++);
if (obj instanceof String)
cell.setCellValue((String)obj);
else if (obj instanceof Integer){
cell.setCellType(Cell.CELL_TYPE_STRING);
cell.setCellValue(String.valueOf(obj));
}
}
}
我希望该列将00078
视为一个字符串,并显示相同的内容
# 1 楼答案
如果一个
ID
必须有前导零,那么这个ID
的数据类型必须是String
。数字没有前导零。000123在数学上与123完全相同另外,在
Excel
情况下,包含该ID
值的单元格应具有Text
格式的单元格样式。为了防止通过编辑单元格将单元格样式更改为数字样式,还应在单元格样式前加上引号。否则,编辑单元格可能会导致000123再次更改为123下面的代码显示了一个完整的示例,其中
ID
列以这种方式受到保护该代码使用
apache poi 4.1.0
进行测试