`
seawavecau
  • 浏览: 756626 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

parseExcel

阅读更多

java 代码

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