zoukankan      html  css  js  c++  java
  • java实现读取excel文件内容

    package excel;
    
    import java.io.FileInputStream;
    import java.io.InputStream;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.Cell;
    import org.apache.poi.ss.usermodel.DateUtil;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    
    public class ReadExcel {
    	/**
    	 * 读取excel文件
    	 * @param args
    	 */
     
    	public static void main(String[] args) {
    		Workbook wb = null;  
    		Sheet sheet = null;
    		Row row = null;
     
    		String filePath = "C:\Users\Pei\Desktop\2020公司培训课时汇总20201031.xlsx";
    		System.out.println("filePath========"+filePath);
    		wb = readExcel(filePath);
    		if (wb != null) {
    			try {
    				List<List<List<Object>>> list = new ArrayList<>();
    				
    				System.err.println("页签数量:" + wb.getNumberOfSheets());
    				// 循环页签
    				for (int sheetNum = 0; sheetNum < wb.getNumberOfSheets(); sheetNum++) {
    					// 指定页签的值
    					sheet = wb.getSheetAt(sheetNum);
    					// 定义存放一个页签中所有数据的List
    					List<List<Object>> sheetList = new ArrayList<>();
    				
    					System.err.println("行总数:" + sheet.getLastRowNum());
    					// 循环行
    					for (int rowNum = 0; rowNum <= sheet.getLastRowNum(); rowNum++) {
    						// 指定行的值
    						row = sheet.getRow(rowNum);
    						//System.out.println("row================"+row);
    						// 定义存放一行数据的List
    						List<Object> rowList = new ArrayList<>();
    						// 循环列
    						System.err.println("列总数:" + row.getLastCellNum());
    						for (int cellNum = 0; cellNum < row.getLastCellNum(); cellNum++) {
    							Cell cell = sheet.getRow(rowNum).getCell(cellNum);
    							rowList.add(getStringCellValue(cell));
    						}
    						sheetList.add(rowList);
    					}
    					list.add(sheetList);
    				}
    				System.err.println(list.toString());
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    	}
    	
    	
    	   //判断文件格式
        private static Workbook readExcel(String filePath){
            if(filePath==null){
                return null;
            }
            String extString = filePath.substring(filePath.lastIndexOf("."));
            
            try {
                //@SuppressWarnings("resource")
            	System.out.println("filePath====>>>>>"+filePath);
    			InputStream is = new FileInputStream(filePath);
                if(".xls".equals(extString)){
                    return new HSSFWorkbook(is);
                }else if(".xlsx".equals(extString)){
                    return new XSSFWorkbook(is);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return null;
        }
     
        
        
    	//@SuppressWarnings("deprecation")
    	public static String getStringCellValue(Cell cell) {
    		String cellvalue = "";
    		if (cell == null) {
    			return "";
    		}
    		switch (cell.getCellType()) {
    		case Cell.CELL_TYPE_STRING:
    			cellvalue = cell.getStringCellValue();
    			break;
    		case Cell.CELL_TYPE_NUMERIC:
    			if (DateUtil.isCellDateFormatted(cell)) {
    				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    				Date date = cell.getDateCellValue();
    				cellvalue = sdf.format(date);
    			} else {
    				cellvalue = String.valueOf(cell.getNumericCellValue());
    			}
    			break;
    		case Cell.CELL_TYPE_BOOLEAN:
    			cellvalue = String.valueOf(cell.getBooleanCellValue());
    			break;
    		case Cell.CELL_TYPE_BLANK:
    			cellvalue = "";
    			break;
    		default:
    			cellvalue = "";
    			break;
    		}
    		if (cellvalue == "") {
    			return "";
    		}
    		return cellvalue;
    	}
    	
    }
    

      pom.xml文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.cn</groupId>
      <artifactId>readExcel</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>war</packaging>
      <dependencies>
         <dependency>
    	    <groupId>org.apache.directory.studio</groupId>
    	    <artifactId>org.apache.commons.codec</artifactId>
    	    <version>1.8</version>
    	</dependency>
    	 <dependency>
    		<groupId>net.sourceforge.jexcelapi</groupId>
    		<artifactId>jxl</artifactId>
    		<version>2.6.12</version>
    	</dependency>
    	<dependency>
    		<groupId>org.apache.poi</groupId>
    		<artifactId>poi-ooxml</artifactId>
    		<version>3.9</version>
    	</dependency>
    <dependency>
       <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.54</version>
    </dependency>
      </dependencies>
    </project>
    

      

  • 相关阅读:
    转:神经网络入门
    转:Webkit Flex伸缩盒模型属性备忘
    css3 display:-webkit-box
    display:inline和display:block及html常用标签
    display
    weui flex 分布
    图片、字体、iconfont矢量图
    flex weui列表demo
    方法调用
    C#多线程之Task
  • 原文地址:https://www.cnblogs.com/xianz666/p/13952665.html
Copyright © 2011-2022 走看看