`
scenery_86
  • 浏览: 47682 次
社区版块
存档分类
最新评论

parseExcel

    博客分类:
  • POI
阅读更多
java 代码
  1. /**  
  2.  *   
  3.  */  
  4. package cn.flyingsoft.oais.service.exchange.entity.impl;   
  5.   
  6. import java.io.File;   
  7. import java.io.FileInputStream;   
  8. import java.io.FileNotFoundException;   
  9. import java.io.IOException;   
  10. import java.util.ArrayList;   
  11. import java.util.List;   
  12.   
  13. import org.apache.poi.hssf.usermodel.HSSFCell;   
  14. import org.apache.poi.hssf.usermodel.HSSFRow;   
  15. import org.apache.poi.hssf.usermodel.HSSFSheet;   
  16. import org.apache.poi.hssf.usermodel.HSSFWorkbook;   
  17.   
  18. import cn.flyingsoft.oais.di.ip.entity.DataMap;   
  19. import cn.flyingsoft.oais.di.ip.entity.Field;   
  20. import cn.flyingsoft.oais.di.ip.entity.ValueNumber;   
  21. import cn.flyingsoft.oais.di.ip.entity.ValueText;   
  22. import cn.flyingsoft.oais.service.exchange.entity.SimplePkg;   
  23.   
  24. /**解析xsl文件  
  25.  * @author jin 20070308  
  26.  *  
  27.  */  
  28. public class ParseExcel {   
  29.        
  30.     private HSSFWorkbook workBook;   
  31.     private SimplePkg simplePkg = null  ;   
  32.     private HSSFSheet sheet;   
  33.        
  34.     public ParseExcel(){   
  35.        
  36.     }   
  37.        
  38.     //获取workBook   
  39.     private HSSFWorkbook getWorkBook(FileInputStream fileInputStream){   
  40.         try {   
  41.             workBook = new HSSFWorkbook(fileInputStream) ;   
  42.         } catch (IOException e) {   
  43.             e.printStackTrace();   
  44.         }   
  45.         return workBook;   
  46.            
  47.     }   
  48.        
  49.     //获取sheet   
  50.     private HSSFSheet getSheet(){   
  51.         sheet = workBook.getSheetAt(0) ;   
  52.         return sheet;   
  53.            
  54.     }   
  55.        
  56.     //获取总行数   
  57.     private int getRowNum(){   
  58.         int RowNum = sheet.getLastRowNum();   
  59.         return RowNum ;   
  60.     }   
  61.        
  62.     //获取单元类型 Numeric:0 String:1 Formula:2 Blank:3 Boolean:4 Error:5   
  63.     private short getCellType(HSSFCell cell){   
  64.         short cellType = 3;   
  65.         try{   
  66.             cellType = (short) cell.getCellType();   
  67.         }   
  68.         catch(Exception ex){   
  69.             cellType = 3;   
  70.         }   
  71.         return cellType;   
  72.     }   
  73.        
  74.     //获取所有row的值   
  75.     public List getRowValues(File file,int level){   
  76.         FileInputStream fileInputStream;   
  77.         try {   
  78.             fileInputStream = new FileInputStream(file);   
  79.             workBook = this.getWorkBook(fileInputStream) ;   
  80.             sheet = this.getSheet() ;   
  81.         } catch (FileNotFoundException e) {   
  82.             e.printStackTrace();   
  83.         }   
  84.         List list = new ArrayList() ;   
  85.         DataMap dataMap ;   
  86.         /**  
  87.          * 获取第一行  
  88.          */  
  89.         String[] title = new String[sheet.getRow(0).getLastCellNum()] ;   
  90.         for (short n=0; n< title.length; n++){   
  91.             title[n] =  sheet.getRow(0).getCell(n).getStringCellValue().trim() ;   
  92.         }   
  93.         /**  
  94.          * 遍历所有行  
  95.          */  
  96.         for(int i = 1 ;i<=this.getRowNum(); i++){   
  97.             simplePkg = new SimplePkg() ;   
  98.             simplePkg.setLevel(level) ;   
  99.             dataMap = simplePkg.getDescription() ;   
  100.             HSSFRow row = sheet.getRow(i);   
  101.             short cellNum = row.getLastCellNum();   
  102.             HSSFCell cell = null;   
  103.             /**  
  104.              * 遍历所有列  
  105.              */  
  106.             for(short j = 0 ; j                 cell = row.getCell(j);   
  107.                 if(getCellType(cell) == 0) dataMap.put(new Field(title[j]),new ValueNumber(String.valueOf(cell.getNumericCellValue()).trim())) ;   
  108.                 else if(getCellType(cell) == 1) dataMap.put(new Field(title[j]),new ValueText(cell.getStringCellValue().trim())) ;   
  109.                 else if(getCellType(cell) == 2) dataMap.put(new Field(title[j]),new ValueText(cell.getCellFormula().trim())) ;   
  110.                 else if(getCellType(cell) == 4) dataMap.put(new Field(title[j]),new ValueText(new Boolean(cell.getBooleanCellValue()).toString().trim())) ;   
  111.                 simplePkg.setDescription(dataMap) ;   
  112.             }   
  113.             list.add(simplePkg) ;   
  114.         }   
  115.         return list ;   
  116.     }   
  117.        
  118.     //   
  119.     public List returnSimList(List files){   
  120.         List simplePkgs = new ArrayList() ;   
  121.         List rowValues = new ArrayList() ;   
  122.         int count = 1 ;   
  123.         for(File file:files){   
  124.             simplePkg = new SimplePkg () ;   
  125.             rowValues = this.getRowValues(file,count) ;   
  126.             for (SimplePkg simplePkg : rowValues){   
  127.                 simplePkgs.add(simplePkg) ;   
  128.                 simplePkg.setAllLevel(files.size()) ;   
  129.             }   
  130.             count ++ ;   
  131.         }   
  132.         return simplePkgs;    
  133.     }   
  134.        
  135.     public static void main(String args[]) throws IOException{   
  136.         List files = new ArrayList() ;   
  137.         files.add(new File("E:\\zc-01.xls")) ;   
  138.         files.add(new File("E:\\zc-01h.xls")) ;   
  139. //        files.add(new File("E:\\W2005HJ.xls"));   
  140.         ParseExcel parseExcel = new ParseExcel()  ;   
  141.         List simplePkgs = parseExcel.returnSimList(files) ;   
  142.         SimplePkg simplePkg = new SimplePkg () ;   
  143.            
  144.         System.out.println(simplePkg);   
  145.     }   
  146. }  
分享到:
评论

相关推荐

    spreadsheet-parseexcel-master.zip_version 0.65

    《深入解析:Spreadsheet-ParseExcel——基于版本0.65的使用与实践》 在IT行业中,数据处理是一项至关重要的任务,而Spreadsheet-ParseExcel是一个强大的工具,专为解析Excel文件而设计。本文将深入探讨Spreadsheet...

    Spreadsheet-ParseExcel-0.65.tar.gz

    Spreadsheet-ParseExcel,Perl的Excel插件,可用于读写Excel文件,在Linux下对Excel文件进行处理。 可以用Spreadsheet::ParseExcel先解析excel,再用Spreadsheet::WriteExcel写入。 或者直接使用Spreadsheet::...

    Spreadsheet-ParseExcel-0.59.tar.gz

    标题中的"Spreadsheet-ParseExcel-0.59.tar.gz"是一个在Linux环境中常见的压缩文件,其中包含了Perl语言的一个模块——Spreadsheet::ParseExcel。这个模块主要用于读取和写入Excel文件,为用户提供了一种简单易用的...

    perl 模(Spreadsheet-ParseExcel)

    Perl 模块 `Spreadsheet::ParseExcel` 是一个用于解析 Excel 文件的库,它允许开发者在 Perl 程序中读取和处理 Excel 工作表的数据,而无需依赖 Microsoft Office 或其他重型软件。这个模块提供了高效且灵活的方式来...

    parseExcel.7z

    标题“parseExcel.7z”所指的,是一个包含了处理Excel文件并将其转换为JSON格式的工具或脚本。这个工具或脚本可能是用Node.js编写的,因为描述中提到了需要先安装Node.js环境。Node.js是一个基于Chrome V8引擎的...

    Perl SpreadSheet_Excel

    这个库的核心组件是 `Spreadsheet::ParseExcel` 模块,它允许开发者读取Excel文件的内容,包括单元格的数据、公式、格式等信息,而无需依赖Microsoft Office或类似的软件。 `Spreadsheet::ParseExcel` 模块的安装...

    poi parse excel

    NULL 博文链接:https://haroldxie.iteye.com/blog/1171275

    perl Spreadsheet

    在Perl Spreadsheet中,主要有两个核心模块:Spreadsheet::WriteExcel 和 Spreadsheet::ParseExcel。Spreadsheet::WriteExcel用于创建新的Excel文件,而Spreadsheet::ParseExcel则用于解析已存在的Excel文件。 1. *...

    Perl读写excel

    这些库主要是Spreadsheet::WriteExcel和Spreadsheet::ParseExcel,它们为Perl开发者提供了方便的API,使得在不依赖Microsoft Office的情况下,也能处理Excel数据。 1. **Spreadsheet::WriteExcel**: 这个模块允许...

    perl读取EXCEL文件输出到XML

    1. 读取 EXCEL 文件:使用 Spreadsheet::ParseExcel 模块读取 EXCEL 文件,获取单元格的值和样式等信息。 2. 处理数据:对读取的数据进行处理,例如将数据存储在数组中。 3. 生成 XML 文件:使用 XML::Writer 模块...

    springboot+java+jsp实现解析excel表中的内容

    &lt;form action="/parseExcel" method="post" enctype="multipart/form-data"&gt; 解析"&gt; ``` 以上就是使用Spring Boot、Java和JSP解析Excel文件的基本流程。实际应用中,可能还需要考虑更多细节,比如错误处理...

    java实现Excel导入功代码.pdf

    - `parseExcel(excelDTO)`方法解析上传的Excel文件。这个方法可能使用Apache POI库或其他类似的库来读取Excel内容,将其转换成可处理的数据结构(如Map或List)。 - 解析过程中可能检查数据数量,如`...

    Perl在电信网管的简单应用.pptx

    Perl的`Spreadsheet`模块如`Spreadsheet::WriteExcel`或`Spreadsheet::ParseExcel`可以帮助将数据转化为符合标准格式的报表,例如将数据导出为MIS系统所需的格式。这样可以避免手动操作,减少错误并提高效率。 3. *...

    JXL解析和生成Excel文件

    压缩包内的“parseExcel”可能是包含示例代码或测试数据的文件,供读者实践操作。 总的来说,学习JXL库可以帮助Java开发者轻松处理Excel数据,无论是进行数据分析、报表生成还是数据导入导出,都是一个非常实用的...

    SpringBoot+POI+反射机制实现复杂Excel文件解析

    public List&lt;YourModelClass&gt; parseExcel(File excelFile) throws IOException { try (InputStream is = new FileInputStream(excelFile); Workbook workbook = new XSSFWorkbook(is)) { Sheet sheet = workbook...

    Perl中使用Win32_OLE模块读写Excel的方法1

    5. **广泛支持**:Perl社区庞大,有大量的模块和资源可供使用,包括处理Excel的其他模块如Spreadsheet::WriteExcel、Spreadsheet::ParseExcel等,为开发者提供了丰富的选择。 **使用Win32::OLE模块操作Excel的基本...

    Spreadsheet-WriteExcel

    这个库允许程序员无需借助 Microsoft Excel 应用程序,就能在服务器端生成、修改和保存 Excel 工作簿。下面将详细介绍其相关知识点。 1. **Excel 文件格式** - Excel 文件主要有两种格式:.xls 和 .xlsx。...

    php直接读excel Spreadsheet_Excel_Reader

    Spreadsheet_Excel_Reader是基于Perl的Spreadsheet::ParseExcel库实现的,它使用纯PHP代码,因此可以在任何支持PHP的服务器上运行,包括那些没有安装Microsoft Office或者不能使用COM接口的环境。这个库支持大部分...

    java解析excel

    例如,创建一个Servlet实例,调用`uploadFile`方法来处理文件上传,然后调用`parseExcel`方法进行解析。 以上是基本的Java解析Excel文件的流程。为了提高效率和防止内存溢出,可以使用低内存模式(SXSSF)处理大...

    perl-site的压缩包

    此外,如果你处理的是 .xls 文件,可能需要使用 Spreadsheet::ParseExcel 或其他适合老版 Excel 格式的模块。 总的来说,“perl-site”的压缩包为 Perl 开发者提供了解析 Excel 文件的工具,使得在没有 Excel 应用...

Global site tag (gtag.js) - Google Analytics