`
beiyeren
  • 浏览: 2087 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

读取execl 2003 2007

 
阅读更多

这是转自csdn

帅杰 de blog

1.引poi的jar包

  csdn有免费资源

2.代码

package com.shuaijie;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
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{   //poi读取excel数据
       
     public static void read(String fileName,boolean flag) throws Exception {  
         Workbook wb = null;  
         if(flag){//2003  
             File f = new File("D:/XXX.xls");  
               
             FileInputStream is = new FileInputStream(f);  
             POIFSFileSystem fs = new POIFSFileSystem(is);     
             wb = new HSSFWorkbook(fs);  
             is.close();  
         }else{//2007  
             wb = new XSSFWorkbook("D:/XXX.xlsx");  
         }  
         read(wb);  
     }  
       
      
     public static void read(InputStream is,boolean flag) throws Exception {  
         Workbook wb = null;  
           
         if(flag){//2003  
             wb = new HSSFWorkbook(is);  
         }else{//2007  
             wb = new XSSFWorkbook(is);  
         }  
           
         read(wb);  
     }  
       
      
     public static void read(Workbook wb) throws Exception {  
         try {  
               
             for (int k = 0; k < wb.getNumberOfSheets(); k++) {  
  
                 Sheet sheet = wb.getSheetAt(k);  
                 int rows = sheet.getPhysicalNumberOfRows();  
  
                 for (int r = 0; r < rows; r++) {  
                     // 定义 row  
                     Row row = sheet.getRow(r);  
                     if (row != null) {  
                         int cells = row.getPhysicalNumberOfCells();  
  
                         for (short c = 0; c < cells; c++) {  
                             Cell cell = row.getCell(c);  
                             if (cell != null) {  
                                 String value = null;  
  
                                 switch (cell.getCellType()) {  
  
                                 case Cell.CELL_TYPE_FORMULA:  
                                     value = "FORMULA value=" + cell.getCellFormula();  
                                    break;  
  
                                 case Cell.CELL_TYPE_NUMERIC:  
                                     if(HSSFDateUtil.isCellDateFormatted(cell)){  
                                         value = "DATE value=" 
                                             + cell.getDateCellValue();  
                                     }else{  
                                         value = "NUMERIC value=" 
                                                 + cell.getNumericCellValue();  
                                     }  
                                       
                                     break;  
  
                                 case Cell.CELL_TYPE_STRING:  
                                     value = "STRING value=" 
                                             + cell.getStringCellValue();  
                                     break;  
                                       
                                 case Cell.CELL_TYPE_BOOLEAN:  
                                     value = "BOOLEAN value=" 
                                             + cell.getBooleanCellValue();  
                                       
                                      
                                     cell.getDateCellValue();  
                                       
                                     break;  
 
                                 default:  
                                 }  
                                  
                                 System.out.println(value);  
  
                             }  
                         }  
                     }  
                 }  
             }  
         } catch (Exception e) {  
  
             e.printStackTrace();  
         }  
  
    }  
  
      
     public static void main(String[] args) throws Exception {  
        
  
         File f = new File("D:/XXX.xlsx");  
           
         FileInputStream is = new FileInputStream(f);  
           
         System.out.println(f.getName());  
           
         read(is,false);  
           
          
    }  
 

分享到:
评论

相关推荐

    java读取excel2003+2007

    java读取excel文件内容,可读取2003和2007版本

    Npoi读取excel2003和2007到datatable

    要读取Excel到DataTable,首先需要创建一个DataTable实例,然后遍历Excel文件中的每个工作表。对于Excel 2003,使用HSSFWorkbook,对于Excel 2007及以上,使用XSSFWorkbook。这里的关键在于,可以通过文件扩展名或...

    读取Excel数据到DataGridView(内含读取Excel2003和Excel2007两种格式)

    本文将详细讲解如何实现这个功能,涵盖读取Excel 2003(.xls)和Excel 2007及以上版本(.xlsx)两种不同格式的方法。 首先,读取Excel 2003(.xls)文件通常使用的是Microsoft提供的`Microsoft.Office.Interop....

    phpExcel读取excel2007、excel2003文件内容,并返回二维数组

    结合phpExcel插件,写的一个读取excel2007、excel2003工作表内容,并返回二维数组的例子。可以自定义读取哪一张工作表,哪几列,哪几行的excel内容;可以进行扩展,修改里面的代码来适应你的项目。代码有充分的注释...

    Java读取Excel支持2003和2007

    在Java编程中,读取Excel文件是常见的任务,特别是在数据处理和分析的场景下。Excel文件格式有两种主要版本,即2003年的.xls(基于BIFF8格式)和2007年及以后的.xlsx(基于OpenXML标准)。本教程将详细讲解如何使用...

    读取2003excel以及2007excel

    标签"读取excel"表明这是关于如何用编程方式读取Excel文件的知识,而"2003excel"和"2007excel"则强调了对不同版本的支持。在实际开发中,考虑到用户可能使用的不同Excel版本,程序需要具备良好的兼容性,确保能正确...

    C++读取excel数据

    读取环境为Win10+VS2015,个人参考资料封装的excel读取模块用来读取Excel2007中的数据,文件为压缩文件,亲测可用。

    poi读取excel2007和2003兼容工具例子

    在这个"poi读取excel2007和2003兼容工具例子"中,我们将探讨如何使用POI来读取不同版本的Excel文件,特别是Excel 2003(.xls)和Excel 2007及更高版本(.xlsx)。 1. **Apache POI库**:Apache POI是Apache软件基金...

    Java读取Excel内容

    Java读取Excel内容 v Java读取Excel内容 Java读取Excel内容

    Excel2003和excel2007读取方法

    总的来说,无论是用户界面操作还是编程接口,读取Excel2003和Excel2007文件都是相对简单的过程,只需要确保所使用的软件或库支持相应的文件格式。随着技术的发展,现代版本的Excel和相关库已经很好地兼容了旧版本的...

    在.net读取并编辑excel 2003

    在.NET框架中,使用C#语言来读取和编辑Excel 2003文档是一项常见的任务,这在处理数据导入、导出或者自动化办公场景中非常有用。以下是一些关于如何实现这一目标的关键知识点: 1. **Microsoft Office Interop**: ...

    C++读取Excel数据

    在C++中,读取Excel数据通常涉及到使用OLE Automation(对象链接和嵌入自动化)技术,这是一种允许不同应用程序之间交互的方式。在这个特定的例子中,我们使用Microsoft Visual Studio 2003 MFC(Microsoft ...

    delphi7如何读取excel文件

    "Delphi7 读取 Excel 文件" Delphi7 是一个功能强大的开发环境,它提供了多种方式来读取 Excel 文件。在本文中,我们将介绍使用 OLE 和 Excel Application 读取 Excel 文件的方法。 使用 OLE 读取 Excel 文件 ...

    jquery读取excel组件

    jquery读取excel组件,可读取excel表格中的内容

    qt读取excel文件

    在Qt框架下,读取Excel文件通常涉及到使用第三方库,如QAxContainer模块或QCustomPlot等。QAxContainer允许Qt应用程序与ActiveX控件交互,而Excel文件可以通过Microsoft的COM接口来访问。以下是详细的知识点说明: ...

    excel2003 与 excel2007 导入

    标题中的“Excel2003与Excel2007导入”指的是在编程环境中处理这两个不同版本的Microsoft Excel文件格式的兼容性问题。Excel2003使用的是.BIFF8文件格式,而Excel2007引入了新的.OpenXML格式(.xlsx)。在处理这两种...

    looly#hutool-site#流方式读取Excel2003-Excel03SaxReader1

    介绍在标准的ExcelReader中,如果数据量较大,读取Excel会非常缓慢,并有可能造成内存溢出。因此针对大数据量的Excel,Hutool封装了event

    QT 快速读取Excel文件

    在处理Excel文件时,QT虽然没有内置的专门模块,但可以通过一些第三方库如QAxContainer或QSpreadsheet来实现快速读取Excel文件的功能。 QAxContainer是QT提供的一个ActiveX控件容器,允许在QT应用中使用Windows的...

    jsp+jspsmart上传+poi3.8读取excel2007+jxl读取excel2003

    在给定的标题和描述中,"jsp+jspsmart上传+poi3.8读取excel2007+jxl读取excel2003" 提到了一种结合Java Web技术实现文件上传,并通过不同库解析Excel文件的解决方案。这里我们将详细探讨涉及的各个知识点。 首先,`...

    VB2010操作EXCEL2007读取数据

    这个简单的例程将向我们展示如何使用VB2010来读取Excel2007中的数据,并将其显示在文本框(TextBox)中。 首先,我们需要引入Excel相关的引用。在VB2010的项目中,选择“解决方案资源管理器”中的项目,然后右键...

Global site tag (gtag.js) - Google Analytics