概述
public static List<Object[]> getExcelAll(File file) {
List<Object[]> list = new ArrayList<>();
try {
Workbook wb = null;
String fileName = file.getName();
if (fileName.toUpperCase().endsWith("XLS")) {
wb = new HSSFWorkbook(new FileInputStream(file));
} else if (fileName.toUpperCase().endsWith("XLSX")) {
wb = new XSSFWorkbook(new FileInputStream(file));
}
// 把一张xls的数据表读到wb里
// 读取第一页,一般一个excel文件会有三个工作表,这里获取第一个工作表来进行操作 HSSFSheet sheet =
// wb.getSheetAt(0);
Sheet sheet = wb.getSheetAt(0);
DecimalFormat df = new DecimalFormat("0");
// 循环遍历表sheet.getLastRowNum()是获取一个表最后一条记录的记录号,
int maxNum = sheet.getLastRowNum();
//每一列数据长度应该写死,否则后面遍历取最后列的值会报数组越界异常
Row row1=sheet.getRow(0);
int maxRow1 =row1.getLastCellNum();
// 如果总共有3条记录,那获取到的最后记录号就为2,因为是从0开始的
for (int j = 0; j < maxNum + 1; j++) {
// 创建一个行对象
Row row = sheet.getRow(j);
// 把一行里的每一个字段遍历出来
if (row == null) {
continue;
} else {
int maxRow = row.getLastCellNum();
//跳过纯空数据
if (maxRow < 1) {
continue;
}
String[] str2 = new String[maxRow1];
for (int i = 0; i < maxRow; i++) {
// 创建一个行里的一个字段的对象,也就是获取到的一个单元格中的值
Cell cell = row.getCell(i);
// if (cell != null) {
// System.out.println("类型:" + cell.getCellType());
// }
// 在这里我们就可以做很多自己想做的操作了,比如往数据库中添加数据等
// System.out.println("第" + (j + 1) + "行的第" + i + "列的值:"
// + cell);
if (cell != null) {
if (cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) { //类型为数值
str2[i] = df.format(cell.getNumericCellValue()); //防止数字变为科学计数
} else {
str2[i] = cell + "";
}
}
}
list.add(str2);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
最后
以上就是淡淡哈密瓜为你收集整理的Java后台遍历Excel文件的数据的全部内容,希望文章能够帮你解决Java后台遍历Excel文件的数据所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复