使用java代碼操作Excel文件
需要用到的依賴
<!--poi-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
java處理Excel表的數據的數據,對於工作很久的人來說,是Noproblem,但是對於我這種小白來說,基本上是沒有接觸到的
今天跟大家直接上代碼:剛剛編寫很差勁,哈哈
try {
//創建工作簿
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(new FileInputStream("F:\\資料\\工法.xlsx"));
System.out.println("hssfWorkbook對象:" + hssfWorkbook);
//讀取第一個工作表
HSSFSheet sheet = hssfWorkbook.getSheetAt(0);
System.out.println("sheet對象:" + sheet);
//獲取最后一行的num,即總行數。此處從0開始計數
int maxRow = sheet.getLastRowNum();
System.out.println("總行數為:" + maxRow);
for (int row = 1; row <= maxRow; row++) {
//獲取最后單元格num,即總單元格數 ***注意:此處從1開始計數***
int maxRol = sheet.getRow(row).getLastCellNum();
if(maxRol!=0){
System.out.println("--------第" + row + "行的數據如下--------");
FzSub fzSub=new FzSub();
for (int rol = 0; rol < maxRol; rol++) {
//從左到右進行,一次得到第一列的屬性值
System.out.print( sheet.getRow(row).getCell(rol)+ " ");
HSSFCell data = sheet.getRow(row).getCell(rol);
//對列屬性進行疊加,依次存入數據庫,與此同時行的id也要跟隨for外層for循環進行增加
if(rol==0) {
fzSub.setIdLuqiao(String.valueOf(data));
}
if(rol==1) {
fzSub.setCode(String.valueOf(data));
}
if(rol==2) {
fzSub.setName(String.valueOf(data));
}
System.out.println(fzSub);
}
fzSubService.save(fzSub);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
因為我要的是Excel表的部分數據,所以我直接進行判斷,得到我想要的那一列數據,進行存儲
很笨的方法但是很實用,請允許我自誇一下自己, 哈哈。
個人理解!