精华内容
下载资源
问答
  • 下面小编就为大家带来一篇Java用POI解析excel并获取所有单元格数据的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Java Poi 解析EXCEL数据

    2013-08-14 15:09:05
    通过Java Poi 解析EXCEL数据,内附实现代码,绝对可以。要分不为别的,只为能给个评论。
  • 大家都知道Jave解析Excel要用到POI的jar包,但是在POI版本是5.0.0的时候,用到的jar包不止是一个poi的包,用到了8个jar包,少一个项目都会报找不到类的错,运行不起来,这个压缩包的里面的jar直接全部复制拿去
  • 主要介绍了javapoi解析Excel文件版本问题解决办法的相关资料,需要的朋友可以参考下
  • java技术,利用工具类poi解析Excel文档示例
  • java poi 解析excel数据

    2017-09-06 15:29:51
    解析excel文件数据 .xls格式;XSSF为解析.xlsx格式 public static List> analysisXlsExcel(HSSFWorkbook workbook,String[]columnsArr){ List> lstData = new LinkedList>(); HSSFFormulaEvaluator evaluator ...

    解析excel文件数据 .xls格式;XSSF为解析.xlsx格式

    public static List<Map<String, Object>> analysisXlsExcel(HSSFWorkbook workbook,String[]columnsArr){
    
    		List<Map<String, Object>> lstData = new LinkedList<Map<String, Object>>();
    		HSSFFormulaEvaluator evaluator  = new HSSFFormulaEvaluator(workbook);
    		HSSFSheet childSheet = workbook.getSheetAt(0);
    		try {//从第二行开始解析
    			for (int j = 1; j <= childSheet.getLastRowNum(); j++) {
    				Integer num = 0;
    				HSSFRow row = childSheet.getRow(j);
    				StringBuilder rowValue = new StringBuilder();
    
    				if (null != row && !"".equals(row)) {
    					Map<String, Object> dataRow = new HashMap<String, Object>();
    					for (int k = 0; k < columnsArr.length; k++) {
    						HSSFCell cell = row.getCell(k);
    						if (null != cell && !"".equals(cell)) {
    							
    							//获取单元格中的数据
    //							cell.setCellType(HSSFCell.CELL_TYPE_STRING);
    							dataRow.put(columnsArr[k],UtilExcel.getCellValue(cell, evaluator));
    							
    							rowValue.append(UtilExcel.getCellValue(cell, evaluator));
    							++num;
    						} else {
    							if (!columnsArr[k].isEmpty()){
    								dataRow.put(columnsArr[k],"");
    							}
    						}
    					}
    					if (rowValue.length() > 0 && num>=1) {
    						lstData.add(dataRow);
    						rowValue.delete(0, rowValue.length() - 1);
    					}else{
    						break;
    					}
    				}
    			}
    			return lstData;
    		} catch (Exception e) {
    			String info = "analysisXlsExcel出错";
    			logger.error(info,e);
    		}
    		return lstData; 
    	}

    展开全文
  • 下面小编就为大家带来一篇java POI解析Excel数据转换公用方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 我们在开发中可能会遇到将excel表中的数据存储到数据库中去,这就需要对excel进行解析 在操作过程中用到了poi-3.17.jar包 @Override public List getTotals(String filePath) { InputStream is; HSSFWorkbook...

    我们在开发中可能会遇到将excel表中的数据存储到数据库中去,这就需要对excel进行解析

    在操作过程中用到了poi-3.17.jar包

    @Override
    	public List<ExcelModel> getTotals(String filePath) {
    		InputStream is;
    		HSSFWorkbook hssfWorkbook;
    		List<ExcelModel> list = null;
    		try {
    			is = new FileInputStream(filePath);
    			hssfWorkbook = new HSSFWorkbook(is);
    			ExcelModel excelModel = null;
    			list = new ArrayList<>();	
    			for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
    	            HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
    	            if (hssfSheet == null) {
    	                continue;
    	             }
    	            // 循环行Row
    	             for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
    	            	  HSSFRow hssfRow = hssfSheet.getRow(rowNum);
    		              if (hssfRow != null) {
    		            	 excelModel = new ExcelModel();
    	                     HSSFCell id = hssfRow.getCell(0);
    	                     HSSFCell teacherName = hssfRow.getCell(1);
    	                     HSSFCell major = hssfRow.getCell(2);
    	                     HSSFCell title = hssfRow.getCell(3);
    	                     HSSFCell describe = hssfRow.getCell(4);
    	                     HSSFCell instruction = hssfRow.getCell(5);
    	                     HSSFCell exceptResult = hssfRow.getCell(6);
    	                     HSSFCell tel = hssfRow.getCell(7);
    	                     HSSFCell qq = hssfRow.getCell(8);
    	                     
    	                     excelModel.setId(getValue(id));
    	                     excelModel.setTeacherName(getValue(teacherName));
    	                     excelModel.setMajor(getValue(major));
    	                     excelModel.setTitle(getValue(title));
    	                     excelModel.setDescribe(getValue(describe));
    	                     excelModel.setInstruction(getValue(instruction));
    	                     excelModel.setExceptResult(getValue(exceptResult));
    	                     excelModel.setTel(getValue(tel));
    	                     excelModel.setQq(getValue(qq));
    	                     
    	                     list.add(excelModel);
    	                 }
    	             }
    	         }
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return list;
    	}
    	
    	/**
    	 * 类型转换
    	 */
    	@SuppressWarnings({ "deprecation", "static-access" })
    	private String getValue(HSSFCell hssfCell) {
    	     if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
    	         // 返回布尔类型的值
    	         return String.valueOf(hssfCell.getBooleanCellValue());
    	     } else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
    	         // 返回数值类型的值
    	         return String.valueOf(hssfCell.getNumericCellValue());
    	     } else {
    	         // 返回字符串类型的值
    	         return String.valueOf(hssfCell.getStringCellValue());
    	     }
    	}


    展开全文
  • Java用poi解析Excel,支持xls/xlsx

    万次阅读 2017-01-04 11:29:33
    由于JXL不能支持.xlsx的Excel文件,因此采用POI。 这里要用到的Jar包只...在POI中,解析.XLS使用的是HSSFWorkbook,解析.XLSX的解析用的是XSSFWorkbook,需要判断处理import java.io.File; import java.io.FileInpu

    由于JXL不能支持.xlsx的Excel文件,因此采用POI。
    这里要用到的Jar包只需要:org.apache.poi 3.15和org.apache.poi-ooxml 3.15
    在POI中,解析.XLS使用的是HSSFWorkbook,解析.XLSX的解析用的是XSSFWorkbook,需要判断处理

    import java.io.File;  
    import java.io.FileInputStream;  
    import java.io.IOException;  
    import java.io.InputStream;  
    import java.text.SimpleDateFormat;  
    
    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 ExcelToDB {
        private static final String EXCEL_XLS = "xls";  
        private static final String EXCEL_XLSX = "xlsx";  
        //判断Excel的版本,获取Workbook 
        public static Workbook getWorkbok(InputStream in,File file) throws IOException{  
            Workbook wb = null;  
            if(file.getName().endsWith(EXCEL_XLS)){  //Excel 2003  
            wb = new HSSFWorkbook(in);  
            }else if(file.getName().endsWith(EXCEL_XLSX)){  // Excel 2007/2010  
                wb = new XSSFWorkbook(in);  
            }  
            return wb;  
        }  
    
        //判断文件是否是excel 
        public static void checkExcelVaild(File file) throws Exception{  
            if(!file.exists()){  
                throw new Exception("文件不存在");  
            }  
            if(!(file.isFile() && (file.getName().endsWith(EXCEL_XLS) || file.getName().endsWith(EXCEL_XLSX)))){  
                throw new Exception("文件不是Excel");  
            }  
        }  
    
        //由指定的Sheet导出至List 
        public static void exportListFromExcel() throws IOException {  
    
        SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");  
         try {  
                // 同时支持Excel 2003、2007  
                File excelFile = new File("D:/123.xls"); // 创建文件对象  
                FileInputStream is = new FileInputStream(excelFile); // 文件流  
                checkExcelVaild(excelFile);  
                Workbook workbook = getWorkbok(is,excelFile);  
                //Workbook workbook = WorkbookFactory.create(is); // 这种方式 Excel2003/2007/2010都是可以处理的  
    
                int sheetCount = workbook.getNumberOfSheets(); // Sheet的数量  
                /** 
                 * 设置当前excel中sheet的下标:0开始 
                 */  
                Sheet sheet = workbook.getSheetAt(0);   // 遍历第一个Sheet  
    
                // 为跳过第一行目录设置count  
                int count = 0;  
    
                for (Row row : sheet) {  
                    // 跳过第一行的目录  
                    if(count == 0){  
                        count++;  
                        continue;  
                    }  
                    // 如果当前行没有数据,跳出循环  
                    if(row.getCell(0).toString().equals("")){  
                        return ;  
                    }  
                    String rowValue = "";  
                    for (Cell cell : row) {  
                        if(cell.toString() == null){  
                            continue;  
                        }  
                        int cellType = cell.getCellType();  
                        String cellValue = "";  
                        switch (cellType) {  
                            case Cell.CELL_TYPE_STRING:     // 文本  
                                cellValue = cell.getRichStringCellValue().getString() + "#";  
                                break;  
                            case Cell.CELL_TYPE_NUMERIC:    // 数字、日期  
                                if (DateUtil.isCellDateFormatted(cell)) {  
                                    cellValue = fmt.format(cell.getDateCellValue()) + "#";  
                                } else {  
                                    cell.setCellType(Cell.CELL_TYPE_STRING);  
                                    cellValue = String.valueOf(cell.getRichStringCellValue().getString()) + "#";  
                                }  
                                break;  
                            case Cell.CELL_TYPE_BOOLEAN:    // 布尔型  
                                cellValue = String.valueOf(cell.getBooleanCellValue()) + "#";  
                                break;  
                            case Cell.CELL_TYPE_BLANK: // 空白  
                                cellValue = cell.getStringCellValue() + "#";  
                                break;  
                            case Cell.CELL_TYPE_ERROR: // 错误  
                                cellValue = "错误#";  
                                break;  
                            case Cell.CELL_TYPE_FORMULA:    // 公式  
                                // 得到对应单元格的公式  
                                //cellValue = cell.getCellFormula() + "#";  
                                // 得到对应单元格的字符串  
                                cell.setCellType(Cell.CELL_TYPE_STRING);  
                                cellValue = String.valueOf(cell.getRichStringCellValue().getString()) + "#";  
                                break;  
                            default:  
                                cellValue = "#";  
                        }  
                        //System.out.print(cellValue);  
                        rowValue += cellValue;  
                    }    
                    System.out.println(rowValue);  
                    System.out.println();  
                }   
            } catch (Exception e) {  
                e.printStackTrace();  
            } finally{    
            }  
        } 
    }

    常见错误:解析.XLSX时出现“java.lang.NoSuchFieldError: RAW_XML_FILE_HEADER ”
    原因是在我引入了3.15的版本后又不小心引入了3.14版本,把3.14版本的Jar包移除,使用正确的3.15问题就不会发生。

    感谢原文作者,点击查看原文

    展开全文
  • 1.导入POI相关jar包  org.apache.poi jar  2.代码示例   public List getAllExcel(File file, String tableName, String fname,  String enterpriseId, String reportId, String projectId)  throws ...

      1.导入POI相关jar包

      org.apache.poi jar

      2.代码示例

      

    public List getAllExcel(File file, String tableName, String fname,
      String enterpriseId, String reportId, String projectId)
      throws FileNotFoundException, IOException, ClassNotFoundException,
      InstantiationException, IllegalAccessException,
      NoSuchMethodException, SecurityException, IllegalArgumentException,
      InvocationTargetException, ParseException {


      List listt = new ArrayList();

      try {
        FileInputStream fis = new FileInputStream(file);
        Workbook workbook = null;
        if (fname.toLowerCase().endsWith("xlsx")) {
          workbook = new XSSFWorkbook(fis);
        } else if (fname.toLowerCase().endsWith("xls")) {
          workbook = new HSSFWorkbook(new POIFSFileSystem(fis));
        }
        int numberOfSheets = workbook.getNumberOfSheets();

        for (int i = 0; i < numberOfSheets; i++) {
          Sheet sheet = workbook.getSheetAt(i);
          for (int j = 1; j < sheet.getPhysicalNumberOfRows(); j++) { // 获取每行
            XSSFRow row = (XSSFRow) sheet.getRow(j);
            if(row!=null){
              List list = new ArrayList();
              for (int k = 0; k < sheet.getRow(0).getPhysicalNumberOfCells(); k++) { // 获取每个单元格
                Cell cell = row.getCell(k);
                if (cell == null) {
                  list.add("");
                  continue;
                }
                switch (cell.getCellType()) {
                case Cell.CELL_TYPE_STRING:
                  list.add(cell.getRichStringCellValue().getString());
                  break;
                case Cell.CELL_TYPE_NUMERIC:
                  if (DateUtil.isCellDateFormatted(cell)) {
                    list.add(cell.getDateCellValue());
                  } else {
                    list.add(cell.getNumericCellValue());
                  }
                  break;
                case Cell.CELL_TYPE_BOOLEAN:
                  list.add(cell.getBooleanCellValue());
                  break;
                case Cell.CELL_TYPE_FORMULA:
                  list.add(cell.getCellFormula());
                  break;
                default:
                  list.add("");
                break;
              }
            }

            listt.add(getByReflect(tableName, list, enterpriseId,reportId, projectId));
          }
        }
      }
        fis.close();
          } catch (IOException e) {
            e.printStackTrace();
          }
        return listt;
    }

    转载于:https://www.cnblogs.com/xiaofengyuan/p/5756287.html

    展开全文
  • NULL 博文链接:https://skyfar666.iteye.com/blog/1922052
  • Java 利用POI 解析Excel

    2021-01-05 19:58:11
    --利用poi 读取excel--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.16</version> </dependency> <...
  • javaPOI解析excel

    千次阅读 2019-07-03 14:28:28
    3 创建Java程序 3.1 版本说明 Spring Boot: 2.1.13 ...创建一个名为Excel的Spring Boot项目,并添加maven依赖和相应的Java代码,最后的项目结构如下图所示: pom.xml文件内容如下所示: <?xml versi...
  • Java poi 解析 Excel 内容

    2019-06-06 15:28:46
    Java poi 解析 Excel 内容 pom.xml 导入 poi.jar 包 或者直接在项目中添加以下jar包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version&...
  • java中读取Excel文件并解析 Excel2007及以前的文件使用[HSSFWorkbook]6 Excel2007后的文件使用[XSSFWorkbook]6 使用poi的jar包。Common.javapublic class Common { public static final String OFFICE_EXCEL_2003_...
  • Java使用poi解析Excel

    千次阅读 2014-09-09 18:48:53
    直接扔代码: package test; import java.io.FileInputStream;...import java.io.IOException;...import java.io.InputStream;...不知道怎么添加Excel附件,所以直接把Excel截了图片,一看就明白。
  • java利用POI解析Excel及图片

    千次阅读 热门讨论 2019-05-07 16:43:38
    依赖jar <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> ...
  • 在日常工作中,我们常常会进行Excel文件读写操作,这篇文章主要介绍了java读写excel文件实现POI解析Excel的方法,实例分析了java读写excel的技巧,非常具有实用价值,需要的朋友可以参考下
  • MAVEN POI &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.poi&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;poi&amp;lt;/artifactId&amp...
  • 1、需要的maven依赖 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>p...
  • java+poi解析excel文件

    2015-12-17 14:33:14
    import java.io.IOException; import java.util.*; import java.util.Map.Entry;import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache
  • 一、需要导入的jar包 &...org.apache.poi&lt;/groupId&gt;  &lt;artifactId&gt;poi&lt;/artifactId&gt;  &lt;version&gt;3.9&lt;/version&gt;  
  • 主要为大家详细介绍了Java使用poi操作excel的简单实例,感兴趣的小伙伴们可以参考一下
  • 解析excel数据入库的三个jar包,org.apache.poi.hssf.usermodel.HSSFCell; org.apache.poi.hssf.usermodel.HSSFRow; org.apache.poi.hssf.usermodel.HSSFSheet; org.apache.poi.hssf.usermodel.HSSFWorkbook;
  • java通过POI解析Excel表格内容

    千次阅读 2017-04-13 10:50:47
    为了使用SpringMVC读取参数使用MultipartFile接收参数,但MultipartFile与File不同,传参时经常会出现错误,可以通过... public ModelAndView readExcel(MultipartFile aaa){ ModelAndView mav=new ModelAndView();
  • poi解析excel

    2019-05-07 09:35:12
    一个解单的java工程,利用poi解析excel.下载代码直接可以运行。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,006
精华内容 4,402
关键字:

java用poi解析excel的数据

java 订阅