`
touch_mai
  • 浏览: 40028 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

apache poi 导入2007excel 及处理excel不可读取内容!

阅读更多
处理excel主要是三层循环,对工作表的循环,对行数的循环,对单元格的循环
try {
			is = new FileInputStream(file);
			
			HSSFWorkbook wb=null;
			try {
//office 2003和以前版本
				wb = new HSSFWorkbook(new POIFSFileSystem(is));
				
			} catch (RuntimeException e) {
//office 2007版本
				XSSFWorkbook wb1 = new XSSFWorkbook(file.getPath());
				return import2007(wb1);
			}
			//工作表数
			int sheetNum = wb.getNumberOfSheets();
			
			for (int i = 0; i < sheetNum ; i++) {
				
				HSSFSheet childSheet = wb.getSheetAt(i);
				
				int rowNum = childSheet.getLastRowNum();
				
				for (int j = childSheet.getFirstRowNum(); j < rowNum; j++) {
					
					HSSFRow row = childSheet.getRow(j);
					if(row!=null){
						int cellNum = row.getLastCellNum();
						
						String[] str=new String[cellNum];
						
						for (int k = 0; k < cellNum; k++) {
							if(row.getCell(k)!=null){
								str[k]=row.getCell(k).toString();
							}else{
								str[k]=null;
							}
						}
												}
					}
				}
			}



//2007版本excel
public String import2007(XSSFWorkbook wb){
		StockderDAO dao=(StockderDAO)getDao();
		int sheetNum = wb.getNumberOfSheets();
		
		for (int i = 0; i <sheetNum ; i++) {
			
			XSSFSheet childSheet = wb.getSheetAt(i);
			
			int rowNum = childSheet.getLastRowNum();
			
			for (int j = childSheet.getFirstRowNum(); j < rowNum; j++) {
				
				XSSFRow row = childSheet.getRow(j);
				
				int cellNum = row.getLastCellNum();
				
				String[] str=new String[cellNum];
				
				for (int k = 0; k < cellNum; k++) {
					if(row.getCell(k)!=null){
						str[k]=row.getCell(k).toString();
					}else{
						str[k]=null;
					}
				}
				if(j!=0){
					boolean flag=dao.getBuyDistinct(str,this.request.getParameterMap());
					if(flag){
						XSSFCell cel=row.createCell(cellNum );
						cel.setCellValue("R");
					}
				}
				
			}
		}
		ServletOutputStream fOut=null;
		try {
			fOut=response.getOutputStream();
			wb.write( fOut);
			fOut.flush();
			fOut.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return NONE;
	}



关于excel不可读取的内容:当我们把2007的excel另存为 2003excel的格式的时候,然后以2003excel导入到程序,这时如生成的是2003excel,而原本的2007excel如果有安全设置或宏 在打开excel的时候就 弹出 有些内容不可读取的提示!

下面的附件 就是导入2007的excel所需要的jar包!

分享到:
评论
1 楼 zhanghe086 2012-05-15  
“不可读取的内容”这个问题怎么解决呢?

相关推荐

    Apache POI导入数据到Excel电子表格

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,尤其是Excel。在Java开发中,Apache POI 提供了一套丰富的API,使得开发者...在实际项目中,Apache POI已经成为Java开发中不可或缺的工具之一。

    Apache POI资源包

    综上所述,Apache POI是Java开发者处理Microsoft Office文档不可或缺的工具,它提供了一整套API,使开发者能够在没有Microsoft Office环境的情况下,高效、安全地进行文件的读取、写入和管理。无论是在企业应用、...

    poi--4.导入excel

    本教程将重点讲解如何使用Apache POI库导入Excel数据。 1. **Apache POI 概述** - POI项目始于2001年,由Apache软件基金会维护,提供了一个纯Java实现的API。 - 主要组件包括HSSF(Horrible Spreadsheet Format)...

    java_poi导入excel通用工具类

    总结,这个“java_poi导入excel通用工具类”结合了Apache POI的强大功能,Java的反射机制,以及自定义注解的灵活性,为Java开发者提供了一种高效、可定制的Excel数据导入解决方案。通过这样的工具类,我们可以轻松地...

    POI技术将excel解析导入mysql.pdf

    根据提供的文件信息,可以看出文档主要阐述了如何使用Apache POI技术解析2003-2007版本的Excel文档,并将解析后的数据导入到MySQL数据库中。文档中分别涉及到Java实体类的设计(User.java),以及数据访问层的设计...

    excelpoi导入导出功能

    在导入Excel时,Apache POI允许我们创建一个工作簿对象,然后通过该对象获取工作表,并逐行读取单元格的数据。对于注解的支持,可能是通过自定义注解来标记特定的字段,以便在读取Excel时将数据映射到对应的Java对象...

    Apache POI 3.16 JAR 包

    Apache POI 是一个开源项目,专门用于处理Microsoft Office格式...无论是在数据导入导出、报表生成还是自动化任务中,它都是一个不可或缺的库。通过理解和熟练使用其API,开发者可以构建出高效、可靠的Excel处理应用。

    poi 3.10 Excel导入导出工具包含文档

    Apache POI 是一个开源项目,专门用于处理微软的Office文档格式,如Excel(.xlsx、.xls)、Word(.doc、.docx)和PowerPoint(.ppt、.pptx)。...如果你需要在Java应用中与Excel交互,Apache POI是一个不可或缺的库。

    poi2.rar_Apache POI_PO_apache poi2_apache poi2 API_poi.apache.c

    在Java开发中,当你需要与Excel数据进行交互,如创建新的工作簿,编辑单元格,读取数据,或者构建复杂的公式时,Apache POI是一个不可或缺的工具。这个"非常有用的东西"不仅能够帮助开发者处理日常的数据导入导出...

    poi导入导出excel所需要的jar包

    OOXML是Excel 2007及更高版本默认使用的文件格式(.xlsx),因此如果你需要读写.xlsx文件,这个jar包是必不可少的。 2. **poi-ooxml-schemas**: 这个jar包包含了处理OOXML文件所必需的XML模式定义。它提供了对XML ...

    org.apache.poi依赖包

    这个"org.apache.poi"依赖包是Java开发者在处理这些文件时不可或缺的工具。它提供了丰富的API,使得在Java环境中读取、写入和操作Office文档变得轻而易举。 Apache POI 3.17 版本是该项目的一个稳定版本,包含了...

    Java poi 实现excel导入导出

    在Java编程环境中,Apache POI库是一个非常重要的工具,它允许开发者读取、写入和修改Microsoft Office格式的文件,尤其是Excel(.xlsx 和 .xls)文件。本教程将深入探讨如何利用Java POI库来实现Excel的导入与导出...

    java 使用poi组件处理 excel word

    Apache POI 是一个开源项目,它的主要功能是读取和写入Microsoft Office格式的文件,如.XLS(Excel 97-2003)和.XLSX(Excel 2007及以上版本),以及.WRD(Word 97-2003)和.DOCX(Word 2007及以上版本)。通过POI,...

    通用的POI导入Excel解决方案

    2. **导入Excel数据** - **创建Workbook对象**:首先,我们需要创建一个Workbook对象来表示Excel文件。对于.xls文件,我们使用HSSFWorkbook,而对于.xlsx文件,我们使用XSSFWorkbook。 - **打开Sheet**:Workbook...

    POI 导入导出示例

    总之,Apache POI是Java开发中处理Excel文件不可或缺的工具,它的易用性和灵活性使得它成为数据导入导出、报表生成和自动化任务的理想选择。通过实践和学习"POI 导入导出示例",开发者可以提升自己在处理Office文件...

    Apache POI教程

    除了Apache POI,还有其他第三方库可供选择,如Aspose.Cells、JXL和JExcel API,它们也提供了与Excel文件交互的功能。 Aspose.Cells是Aspose公司提供的一个纯Java授权的Excel API,适合创建动态报表、高保真渲染和...

    导出excel文档所需要的poi的jar包

    在Java环境中,如果你需要导出或者操作Excel文档,Apache POI是必不可少的工具。标题提到的"导出excel文档所需要的poi的jar包"正是指这个功能。 Apache POI的版本3.8是较早的一个稳定版本,尽管现在已经有更新的...

    对Apache POI的使用

    Apache POI是一个强大的开源库,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。这个库在Java世界中被广泛使用,允许开发者在应用程序中创建、修改和读取这些文件。以下是对Apache POI使用的...

    Excel导入导出数据库 poi

    标题中的“Excel导入导出数据库 poi”涉及到的是Java编程领域中使用Apache POI库来处理Excel数据,并与数据库进行交互的技术。Apache POI是Apache软件基金会的一个开源项目,提供了读写Microsoft Office格式文档的...

    apache 的 POI.jar包

    综上所述,Apache POI.jar包是Java开发中处理Microsoft Office文件不可或缺的工具,无论是在数据处理、报告生成还是文件转换等方面,都能提供强大且灵活的支持。使用poi-4.1.2版本,开发者可以利用最新的功能和改进...

Global site tag (gtag.js) - Google Analytics