EXCEL 读取

xlsx2007 和 xls2003 两种格式需要使用两种方法
XSSF      HSSF
大数据excel读取参考 http://www.iteye.com/topic/624969
poi-3.9.jar poi-ooxml-3.9.jar poi-ooxml-schemas-3.9.jar xmlbeans-2.3.0.jar

小数据excel读取
package com.aibi.cmdc.webService;

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelUtil {

	public static String getCellValue(Cell cell) {
		if (cell.getCellType() == cell.CELL_TYPE_BOOLEAN) {
			// 返回布尔类型的值
			return String.valueOf(cell.getBooleanCellValue());
		} else if (cell.getCellType() == cell.CELL_TYPE_NUMERIC) {
			// 返回数值类型的值
			return String.valueOf(cell.getNumericCellValue());
		} else {
			// 返回字符串类型的值
			return String.valueOf(cell.getStringCellValue());
		}
	}

	public static List<Map<String, String>> readExcel(String pathName) {
		List<Map<String, String>> list = new ArrayList<Map<String, String>>();
		List<String> keys = new ArrayList<String>();
		try {
			InputStream is = new FileInputStream(pathName);
			XSSFWorkbook wk = new XSSFWorkbook(is);
			XSSFSheet hssfSheet = wk.getSheetAt(0);// 取得 第一个sheet页
			XSSFRow titleRow = hssfSheet.getRow(4);// 取得表头
			for (int cellIndex = 0; cellIndex < titleRow.getLastCellNum(); cellIndex++) {
				Cell cell = titleRow.getCell(cellIndex);
				if (cell != null) {
					String cellValue = getCellValue(cell);
					System.out.println(cellValue);
					keys.add(cellValue);
				}
			}
			// 循环行Row
			for (int rowNum = 4; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
				XSSFRow hssfRow = hssfSheet.getRow(rowNum);
				if (hssfRow == null) {
					continue;
				}
				Map<String, String> rowMap = new HashMap<String, String>();
				for (int i = 0; i < hssfRow.getLastCellNum(); i++) {
					Cell cell = hssfRow.getCell(i);
					if (cell != null) {
						rowMap.put(keys.get(i), getCellValue(cell));
					}
				}
				list.add(rowMap);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// String pathName ="e:\\11.xlsx";
		String pathName = "e:\\aa2.xlsx";
		List<Map<String, String>> list = readExcel(pathName);
		System.out.println(list);

	}

}

  

时间: 2024-07-29 05:00:46

EXCEL 读取的相关文章

服务器不装Excel读取Excel并转换DataTable

原来是用OleDb.4.0组件读取Excel,但是放到服务器后 傻了,服务器没装Excel ,而且领导说不可以装 没办法,只好自己重新找下代码 在CodeProject找到一个开源的dll,一阵欢喜啊,虽然是winform项目,但是主要是用他的类库所以提取一下后 自己研究后重新封装了一个类,运行 耶! 完美支持 需要Dome的同学下载后去研究下吧 地址:http://download.csdn.net/detail/jine515073/7266371 本人用 Excel 97-2003 工作表

Java 操作 Excel (读取Excel2007,Poi实现)

关于Java读取Excel2007的文章在Google.百度上搜索一下,没有太好的例子,实现的也不算太好.查看了一下Poi,最新的 POI 3.5 beta 4 支持读写 Excel2007和PPT2007(XLSX and PPTX),自己来实现Java读取Excel2007了. 1,下载 POI 3.5 beta 4 解压,把其中的jar包导入项目文件.以我的读取为例,导入了以下jar包.  没有配置 log4j,测试时报告警报信息,应该为加载顺序导致的初始化问题造成(暂时没有找原因). 2

excel读取 工具类

JAVA源码如下: 1 package cn.yongche.utils; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.IOException; 6 import java.io.InputStream; 7 import java.util.ArrayList; 8 import java.util.List; 9 import org.apache.poi.hssf.usermodel

C# ----Excel读取数据之数据引擎方法

读取Excel表数据,可以使用连接Excel数据引擎的方法 代码如下: /// <summary> /// excel转换为DataTable /// </summary> /// <param name="filename">excel文件名称</param> /// <param name="sheet">excel表单名称</param> /// <returns></r

安装Perl Excel读取模块

在Win7上,进入VisualStudio2008的cmd line prompt perl -MCPAN -e shell install Spreadsheet::ParseExcel install Spreadsheet::ParseExcel::FmtUnicode install Unicode::Map 不过安装Win32::GUI失败,编译问题 参考Perl Excel读取 http://www.cnblogs.com/pangxiaodong/archive/2012/01/3

java读取Excel读取

java中读取Excel数据 package com.pcm.chni.equipment.frame; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.PushbackInputStream; import java.text.SimpleDateFormat; import java.util.

Pandas之Dateframe 实现Excel读取与写入

目的:有时需对数据进行到出到Excel,直观的给别人参阅,或从Excel中读取数据进行操作和分析依赖库 pandas 可简单的读出和写入 1,根据Excel读取( 需安装xlrd库) import numpy as np import pandas as pd pd.read_excel("test.xlsx",'sheet1') 2, 到出Excel文件(需安装openpyxl库) import numpy as np import pandas as pd df.to_excel(

Python实用技巧:从Excel读取数据并绘制成图像

本文主要阐述如何使用python从excel读取数据,并用matplotlib绘制成二维图像. 主要知识点为: 使用xlrd扩展包读取excel数据 使用matplotlib绘制二维图像 美化图像,添加标注,注释,显示Latex风格公式,坐标点处透明化处理等技巧 适合人群:适合具有Python基础的用户,对于需要书写实验报告,学位论文,发表文章,做PPT报告的学员具有较大价值. 开发准备 打开Xfce终端,下载并安装的相关依赖 . $ sudo apt-get update $ sudo apt

自动化接口测试平台:从excel读取数据,传递到request请求中获取不到参数问题

遇到一个问题,将入参的必填参数按照dict格式填入excel表格中,从excel读取数据传递到request请求一直获取不到参数 解决: 1.注意从excel中读取的数据格式为str,传递到request请求的参数格式要求为dict 2.需要将数据反序列化,有以下两种方法: request.post对于参数传入的格式有特殊要求:post请求是我们常说的提交表单,表单的数据内容就是post请求的参数,request实现post请求需设置请求参数data,数据格式 可以为字典.元组.列表和json格