在使用若依框架的时候,我发现若依导出excel,会出现身份证这一列显示正常,但是如果修改
后,会变成计数。那么这时候需要手动去修改格式为文本。
方法一:只对有数据的行设置文本格式
代码实现该功能:在ExcelUtil.java中,修改箭头所指向的代码,改成红框里面的内容即可。这时的效果是将所有有数据的行的单元格(除了表头),都设置成了文本。
代码如下:
// 创建 CellStyle 对象并设置格式为文本
CellStyle textStyle = wb.createCellStyle();
DataFormat format = wb.createDataFormat();
textStyle.setDataFormat(format.getFormat("@"));
// 设置单元格内容居中对齐
textStyle.setAlignment(HorizontalAlignment.CENTER);
textStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// 将文本格式的 CellStyle 应用到单元格
cell.setCellStyle(textStyle);
方法二:对没有数据的空白行设置文本格式。
修改ExcelUtil.Java下的createHeadCell方法,参数添加一个表头列数,并添加红框内的样式代码,即可实现。
注意其他用到createHeadCell的地方,需要传递过来这个参数。
代码实现:
// 创建 CellStyle 对象并设置格式为文本
CellStyle textStyle = wb.createCellStyle();
DataFormat format = wb.createDataFormat();
textStyle.setDataFormat(format.getFormat("@"));
// 设置单元格内容居中对齐
textStyle.setAlignment(HorizontalAlignment.CENTER);
textStyle.setVerticalAlignment(VerticalAlignment.CENTER);
// 设置表头下的每一列的单元格格式为文本,行数为200条
for (int i = 1; i < 200; i++) {
row = sheet.createRow(i);
for(int j = 0; j < size; j++){
Cell cell1 = row.createCell(j);
cell1.setCellStyle(textStyle);
}
}
使用方法一和方法二结合,即可实现导出excel的表头所对应的列格式为文本格式。
最后,制作不易,也是我花了两天时间才搞出来。如果这篇文章帮助到了你,希望留个赞。