参考链接:https://blog.youkuaiyun.com/qq_33223299/article/details/78916457
一.Excel读写技术
区别:
原来excel的读写有好几种方法,这里我就运用了POI来简单的导出,参考上一篇文章导出到本地的数据,现在将它用来导入。
https://blog.youkuaiyun.com/zhizhuo_111/article/details/103021770
简单的demo
效果呈现:
代码实现:
- 创建一个spring boot项目
- 添加poi,poi-ooxml,poi-ooxml-schemas依赖(版本,我是参照别的作者用3.15,读者可以大胆尝试其他版本试试)
- 添加commons-io依赖,用来读取文件。(注意,使用高版本,低版本不支持读取.xlsx文件,这里用的是2.4,2.2就不行)
- 新建一个类,运行下面代码,可以在控制台获取相应结果。
package com.demo.demo;
import org.apache.commons.io.FileUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class ExcelExportJava {
public static void main(String[] args) {
/**
* 开发步骤:
* 1.先获取需要读取的本地文件
* 2.获取工作簿
* 3.获取sheet
* 4.遍历获取行
* 5.遍历获取列
* 6.遍历所有单元格的内容
* 7.打印
*/
File file = new File("P://document//excel//test.xlsx");//获取本地文件
try {
FileInputStream fs= FileUtils.openInputStream(file);//通过文件工具类打开本地文件
XSSFWorkbook wb = new XSSFWorkbook(fs);//用一个excel工作簿接收
XSSFSheet sheetAt = wb.getSheetAt(0);//从工作簿获取第几个sheet,程序员的眼里第一个是从0开始:)
int lastRowNum = sheetAt.getLastRowNum();//从sheet中获取最后一个行号
int firstRowNum = sheetAt.getFirstRowNum();//从sheet中获取第一个行号
for (int i=firstRowNum; i<lastRowNum; i++){
XSSFRow row = sheetAt.getRow(i);//通过第几行获取列
short firstCellNum = row.getFirstCellNum();//从行中获取第一个列号
short lastCellNum = row.getLastCellNum();//从行中获取最后一个列号
for (int j=firstCellNum; j<lastCellNum; j++){
XSSFCell cell = row.getCell(j);//获取该列
String value = cell.getStringCellValue();//获取内容
System.out.print(cell+" ");//打印
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
总结
简单的导入了excel文件
可以尝试导入有多级菜单,树形结构的文件