Java读取Excel

来源:互联网 发布:淘宝打单子视频教程 编辑:程序博客网 时间:2024/05/16 07:00

Java读取xls, xlsx格式文件

maven配置:

<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.15</version>
        </dependency>

  <dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.8</version>

</dependency>



[java] view plain copy
  1. package com.thinkive.common.util;  
  2. import java.io.FileInputStream;  
  3. import java.io.InputStream;  
  4. import java.text.NumberFormat;  
  5. import java.util.ArrayList;  
  6. import java.util.List;  
  7. import java.util.Map;  
  8.   
  9. import org.apache.log4j.Logger;  
  10. import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
  11. import org.apache.poi.ss.usermodel.Row;  
  12. import org.apache.poi.ss.usermodel.Sheet;  
  13. import org.apache.poi.ss.usermodel.Workbook;  
  14. import org.apache.poi.xssf.usermodel.XSSFWorkbook;  
  15.   
  16. import com.thinkive.common.function.gastatisics.bean.ThirdBean;  
  17.   
  18.   
  19. public class ReadExcel {  
  20.   
  21.     private static Logger logger = Logger.getLogger(ReadExcel.class);  
  22.       
  23.     public static void readExcelAndInstallDB(String filePath, int ignoreRows) throws Exception {  
  24.           
  25.         Map<String, String> map = AnalyzeFileName.analyzeFileName(filePath);  
  26.         String fileType = map.get("fileType");  
  27.         InputStream stream = new FileInputStream(filePath);  
  28.         // 获取Excel工作薄对象  
  29.         Workbook wb = null;  
  30.         if ("xls".equals(fileType)) {  
  31.             wb = new HSSFWorkbook(stream);  
  32.         } else if ("xlsx".equals(fileType)) {  
  33.             wb = new XSSFWorkbook(stream);  
  34.         } else {  
  35.             stream.close();  
  36.             logger.error("Excel文件格式错误!");  
  37.             return ;  
  38.         }  
  39.         ignoreRows = ignoreRows < 0 ? 0 : ignoreRows;  
  40.         List<ThirdBean> beanList = new ArrayList<ThirdBean>();  
  41.         NumberFormat nf = NumberFormat.getInstance();  
  42.         nf.setGroupingUsed(false); // 不使用科学型计数方式  
  43.         try {  
  44.             // 获取Excel工作薄表对象,下标从0开始,该对象存储表中的每行对象  
  45.             // wb.getNumberOfSheets() 获取表的总数量  
  46.             for (int k = 0; k < wb.getNumberOfSheets(); k++) {  
  47.                 Sheet sheet1 = wb.getSheetAt(k);  
  48.                 for (int i = ignoreRows; i <= sheet1.getLastRowNum(); i++) {  
  49.                     Row row = sheet1.getRow(i);<span style="font-family: Arial, Helvetica, sans-serif;">//获取每行</span>  
  50.   
  51.                       
  52.                     if (row != null) {  
  53.                         String date = String.valueOf(nf.format(row.getCell(4).getNumericCellValue()));  
  54.                         String time =  String.valueOf(nf.format(row.getCell(5).getNumericCellValue()));  
  55.                         String dateTime = time.length() > 5 ? date+time : date+"0"+time;  
  56.                         // 获取每行中不同下标的单元格,  
  57.                         String str = row.getCell(10).getStringCellValue().trim();  
  58.                         beanList.add(bean);  
  59.                           
  60.                     }  
  61.                 }  
  62.             }  
  63.   
  64.               
  65.         }finally {  
  66.             if(stream != null) {  
  67.                 stream.close();  
  68.             }  
  69.         }  
  70.     }  
  71. }  
0 0
原创粉丝点击