瀏覽代碼

excel内容读取

wukai 2 年之前
父節點
當前提交
c6da29cef9
共有 1 個文件被更改,包括 40 次插入0 次删除
  1. 40 0
      doc-common/src/main/java/com/doc/common/utils/FileContentUtils.java

+ 40 - 0
doc-common/src/main/java/com/doc/common/utils/FileContentUtils.java

@@ -8,10 +8,13 @@ import org.apache.poi.xslf.usermodel.XMLSlideShow;
 import org.apache.poi.xslf.usermodel.XSLFShape;
 import org.apache.poi.xslf.usermodel.XSLFSlide;
 import org.apache.poi.xslf.usermodel.XSLFTextShape;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
 
 import java.io.ByteArrayInputStream;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
@@ -186,5 +189,42 @@ public class FileContentUtils {
     }
 
     public static void main(String[] args) {
+        String path = "D:\\SYSTEM\\Desktop\\temp\\xxx.xlsx";
+        String result = "";
+        try {
+            //创建工作簿对象
+            XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream(path));
+            //获取工作簿下sheet的个数
+            int sheetNum = xssfWorkbook.getNumberOfSheets();
+            System.out.println("该excel文件中总共有:" + sheetNum + "个sheet");
+            //遍历工作簿中的所有数据
+            for (int i = 0; i < sheetNum; i++) {
+                //读取第i个工作表
+                System.out.println("读取第" + (i + 1) + "个sheet");
+                XSSFSheet sheet = xssfWorkbook.getSheetAt(i);
+                //获取最后一行的num,即总行数。此处从0开始
+                int maxRow = sheet.getLastRowNum();
+                System.err.println("总行数:" + maxRow);
+                Thread.sleep(1000);
+                for (int row = 0; row <= maxRow; row++) {
+                    //获取最后单元格num,即总单元格数 ***注意:此处从1开始计数***
+                    if (sheet.getRow(row) != null) {
+                        int maxRol = sheet.getRow(row).getLastCellNum();
+                        System.out.println("--------第" + row + "行的数据如下--------");
+                        for (int rol = 0; rol < maxRol; rol++) {
+                            System.out.print(sheet.getRow(row).getCell(rol) + "  ");
+                        }
+                    System.out.println();
+                    }
+                }
+            }
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
+
+        System.err.println(result.replace("\n\n", "\n"));
     }
 }