`

java读取excel

    博客分类:
  • java
阅读更多

1. 下载poi库

http://poi.apache.org/download.html

2.将poi核心文件取出放入myeclipse的lib中

3.测试代码

package test5;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.text.DecimalFormat;
import java.text.ParseException;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/**
 * 读取Excel测试
 * @author chitianxiang
 * @version v1.0 $17th April, 2012 - Tuesday - 4:34 p.m
 */
public class Test1 {
	
	public static void main(String[] args) {
		File file = new File("E:/chtx/项目/home.xls");
		InputStream fileIn = null;
		InputStream in = null;
		try {
			fileIn = new FileInputStream(file);
			in = new BufferedInputStream(fileIn);
			HSSFWorkbook wb = new HSSFWorkbook(in);
			for (int i = 0, sheetNum = wb.getNumberOfSheets(); i < sheetNum; i++) {
				HSSFSheet sheet = wb.getSheetAt(i);		//读取页面
				if (sheet == null) {
					continue;
				}
				for (int j = 0, rowNum = sheet.getLastRowNum(); j < rowNum; j++) {
					HSSFRow row = sheet.getRow(j);		//读取行
					if (row == null) {
						continue;
					}
					for (int z = 0, cellNum = row.getLastCellNum(); z < cellNum; z++) {
						HSSFCell cell = row.getCell(z);		//读取列
						if (cell == null) {
							continue;
						}
						switch (z) {
							case 0: 
								System.out.println(readCell2String(cell));
								break;
							case 1:
								System.out.println(readCell2String(cell));
								break;
							default:
								//do nothing
								break;
						}
					}
				}
			}
		} catch (FileNotFoundException e) {
			System.out.println("文件没找着");
			e.printStackTrace();
		} catch (IOException e) {
			System.out.println("读取流异常");
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (fileIn != null) {
				try {
					fileIn.close();
				} catch (IOException e) {
					System.out.println("关闭流异常");
					e.printStackTrace();
				}
			}
			if (in != null) {
				try {
					in.close();
				} catch (IOException e) {
					System.out.println("关闭流异常");
					e.printStackTrace();
				}
			}
		}
	}
	
	/**
	 * 将单元格内容转换成字符串,空白和错误默认为空
	 * @param cell	excel 单元格
	 * @author chitianxiang $17th April, 2012 - Tuesday - 5:54 p.m
	 */
	private static String readCell2String(HSSFCell cell) {
		String cellContent = "";
		switch(cell.getCellType()) {
			case HSSFCell.CELL_TYPE_NUMERIC: // 数字  
				cellContent = cell.getNumericCellValue() + "";  
				break;  
			case HSSFCell.CELL_TYPE_STRING: // 字符串  
				cellContent = cell.getStringCellValue() + "";  
				break;  
			case HSSFCell.CELL_TYPE_BOOLEAN: // boolean  
				cellContent = cell.getBooleanCellValue() + "";  
				break;  
			case HSSFCell.CELL_TYPE_FORMULA: // 公式  
				cellContent = cell.getCellFormula() + "";  
				break;  
			case HSSFCell.CELL_TYPE_BLANK: // 空白  
			case HSSFCell.CELL_TYPE_ERROR: // 错误  
			default:  
				cellContent = "";  
				break;  
		}
		
		return normalNumber(cellContent);
	}
	
	/**
	 * 将特殊数字格式转换成普通格式
	 * @param cellContent	数字
	 * @author chitianxiang $17th April, 2012 - Tuesday - 6:09 p.m
	 */
	private static String normalNumber (String cellContent) {
		String tempCellContent = cellContent;
		//如果读取的是科学计数法的格式,则转换为普通格式
        if (null != tempCellContent 			
        		&& tempCellContent.indexOf(".") != -1 
        		&& tempCellContent.indexOf("E") != -1) {
        	
            DecimalFormat df = new DecimalFormat();
            try {
            	tempCellContent = df.parse(tempCellContent).toString();
			} catch (ParseException e) {
				//do nothing
				e.printStackTrace();
			}
		//如果读取的是数字格式,并且以".0"结尾格式,则转换为普通格式
        } else if (null != tempCellContent 		
        		&& tempCellContent.endsWith(".0")) {
        	
            int size = tempCellContent.length();
            tempCellContent = tempCellContent.substring(0, size - 2);
        }
        
        return tempCellContent;
	}
}

 

 

 

分享到:
评论

相关推荐

    Java读取Excel内容

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

    完美解决java读取excel内存溢出问题.rar

    总结来说,解决Java读取Excel内存溢出问题,关键在于合理利用资源、优化代码逻辑以及选择适合的API,如Apache POI的SXSSF。通过这些方法,我们可以在不显著增加系统资源负担的情况下,高效地处理大Excel文件。

    JAVA读取Excel,建库建表,并生成java实体

    总结,Java读取Excel并进行数据库建库建表及生成Java实体的过程涉及了Apache POI库的使用、数据库操作和源代码生成。理解这些步骤可以帮助你有效地处理类似的任务,提高开发效率。在实际应用中,你还需要考虑错误...

    java读取excel数据导入数据库源码

    java读取excel数据导入数据库源码 java读取excel数据导入数据库源码

    java读取excel文件生成矩阵

    在Java编程中,读取...以上就是使用Java读取Excel文件生成矩阵的基本步骤。实际开发中,你可能还需要处理更多细节,如异常处理、数据验证、优化性能等。希望这个介绍能帮助你理解这个过程,并在实际项目中灵活应用。

    Java读取Excel表格中的日期

    ### Java读取Excel表格中的日期 #### 背景与问题描述 在处理Excel文件时,经常遇到的一个问题是如何正确地识别并处理日期格式的数据。这是因为Excel中的日期格式较为复杂,有时甚至会出现不同版本的Excel文件中...

    JAVA读取 excelJAVA读取 excel

    在Java编程环境中,读取Excel文件是一项常见的...Java读取Excel文件是一个相对复杂的任务,但通过Apache POI库,我们可以简化这个过程,高效地处理Excel数据。记住,始终确保正确处理文件流和资源,以避免潜在的问题。

    java读取excel之xlsl超大文件

    标题"java读取excel之xlsl超大文件"所涉及的核心知识点是优化大量数据的读取策略。在Java中,可以使用Apache POI的SXSSF API(Streaming Usermodel API)来实现这种优化。与常规的XSSF API不同,SXSSF允许我们以流的...

    Java读取excel

    Java读取excel

    java读取excel所有页的数据

    本篇将详细介绍如何使用Java读取Excel所有页的数据,以及可能出现的问题和解决策略。 首先,我们需要引入能够处理Excel文件的库。Apache POI 是一个广泛使用的Java API,它允许程序员创建、修改和显示Microsoft ...

    java 读取Excel文件中的内容

    在Java编程中,读取Excel文件的内容是一项常见的任务,尤其在数据处理、报表生成或数据分析等领域。Excel文件通常包含表格数据,而Java提供多种库来处理这类任务,比如Apache POI、JExcelApi和OpenCSV等。本篇将重点...

    Java读取Excel支持2003和2007

    提供的压缩包可能包含了一个Java读取Excel的示例程序、相关的说明文件以及用于测试的Excel文件。确保按照提供的说明运行示例程序,以便在实际环境中验证读取功能。 总之,Java通过Apache POI库提供了强大的功能来...

    java读取excel文件

    Java 读取 Excel 文件 Java 读取 Excel 文件是指使用 Java 语言从 Excel 文件中读取数据,并对其进行处理的过程。下面将详细介绍 Java 读取 Excel 文件的过程和相关知识点。 Java 读取 Excel 文件的步骤 1. 导入...

    java读取excel文件jar包20181223

    Java读取Excel文件是开发过程中常见的任务,尤其是在处理数据导入导出、数据分析或者报表生成时。这个名为"java读取excel文件jar包20181223"的资源可能包含了一些帮助Java开发者实现这一功能的库。下面将详细讨论...

    java读取Excel中多个sheet生成xml文件

    java读取Excel表中的内容,可以读取多个sheet,生成自定义格式的xml文件

    java读取excel数据!

    在Java编程环境中,读取Excel数据是一项常见的任务,特别是在数据处理、数据分析或系统集成的场景中。本示例中,我们关注的是如何使用Java来读取Excel表格中的数据,并将其保存,这通常涉及到Apache POI库的应用。...

    JAVA读取Excel实例,可直接运行

    标题提到的是一个可以直接运行的JAVA读取Excel的实例,而描述则指出在解压文件后,需要调整文件路径和Excel文件名以适应本地环境。 首先,我们要了解Java中用于读取Excel的库。最常用的是Apache POI项目,它提供了...

    java 读取excel表格数据 poi

    java读取excel 表格数据。 public static void main(String[] args) { String[][] content=POIExcelUtils.read("E:\\1.xlsx"); for(int i=0;i;i++) { if(content[i]!=null){ for(int j=0;j[i].length;j...

    java读取excel存入mysql

    本示例程序将指导你如何使用Java读取Excel文件并将其内容存入MySQL数据库。这对于数据导入、数据分析或者自动化报告等任务非常有用。 首先,你需要在项目中引入Apache POI库,这是一个Java API,用于处理Microsoft ...

Global site tag (gtag.js) - Google Analytics