ExcelWriter实现导出Excel表格数据由文本转换为数字问题
最近在上班的时候一直在处理顾客那边数据导出Excel表格的问题,因为是大量数据拼接而来的所以在导出的时候,客户反应说导出的Excel是文本格式的不利于统计的工作。而因为我是用的Hutool工具类ExcelWriter来实现导出Excel表的,所以常规的对单元格类型转换的方法没办法使用在网上参考了他人的文章;算是解决了这个问题。
链接: https://blog.csdn.net/zhanxiaochu/article/details/95309634
1.下面贴上自己封装的代码,如果头更简洁的方法欢迎大家指正
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
/**
* 适用于 Hutool工具类ExcelWriter导出Excel
* sheet 里 下标从 0 开始
* @param writer ExcelWriter writer = ExcelUtil.getWriter();
* @param list excel 写入的数据
* @param rowNum 从第几行 0-第一行
* @param columnNum 从第几列 0--第一列
* @param columnTotalNum 总列数
*/
public static void cellWordsToNumbers(ExcelWriter writer, List list, int rowNum, int columnNum, int columnTotalNum) {
//单元格对象
Sheet sheet = writer.getSheet();
// excel 的文本格式转换为数字格式
for (int r = rowNum; r <= list.size(); r++) {
Row row = sheet.getRow(r);
if (row == null) {
continue;
}
// 列处理
for(int c = columnNum; c <= columnTotalNum; c++){
Cell cell = row.getCell(c);
if(cell != null && cell.getCellType() == CellType.STRING){
String userViews = String.valueOf(cell.getStringCellValue());
// 转换为 Double 类型
row.getCell(c).setCellValue(Double.parseDouble(userViews));
}
}
}
}