当前位置: 首页 > news >正文

EXCEL 读取

为什么80%的码农都做不了架构师?>>>   hot3.png

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);

	}

}

  

转载于:https://my.oschina.net/sbcagf/blog/783000

相关文章:

  • rip路由协议基本配置
  • [Unity3D]深度相机 Depth Camera
  • phpmyadmin安装教程及配置设置
  • 11.08---日记
  • 互斥量与信号量
  • 数据库备份那点事儿
  • maven 中使用jetty
  • 微软宣布Azure DNS全面通用
  • Flex 布局教程:语法篇
  • passwd命令--Linux命令应用大词典729个命令解读
  • 【阿里云资讯】马云为何还要做92届双11?
  • openstack出错记录
  • LAMP编译安装(四)——安装xcache-3.2.0
  • 启动sonar服务器报错:Cleaning or creating temp directory xxx\xxx\temp
  • easyui refresh 刷新两次的解决方法(推荐)
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【Linux系统编程】快速查找errno错误码信息
  • 2019年如何成为全栈工程师?
  • Computed property XXX was assigned to but it has no setter
  • CSS盒模型深入
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Java知识点总结(JavaIO-打印流)
  • Just for fun——迅速写完快速排序
  • laravel with 查询列表限制条数
  • markdown编辑器简评
  • python 装饰器(一)
  • supervisor 永不挂掉的进程 安装以及使用
  • vue-loader 源码解析系列之 selector
  • vue中实现单选
  • 服务器从安装到部署全过程(二)
  • 记录:CentOS7.2配置LNMP环境记录
  • 简单实现一个textarea自适应高度
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 目录与文件属性:编写ls
  • 前端相关框架总和
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 如何胜任知名企业的商业数据分析师?
  • 世界上最简单的无等待算法(getAndIncrement)
  • $GOPATH/go.mod exists but should not goland
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (MATLAB)第五章-矩阵运算
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (四)模仿学习-完成后台管理页面查询
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .net Application的目录
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .Net Core 中间件验签
  • .NET Standard 的管理策略
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET开发人员必知的八个网站
  • .net连接MySQL的方法