当前位置: 首页 > 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 刷新两次的解决方法(推荐)
  • ESLint简单操作
  • express + mock 让前后台并行开发
  • golang 发送GET和POST示例
  • HTML5新特性总结
  • Intervention/image 图片处理扩展包的安装和使用
  • java8-模拟hadoop
  • MySQL主从复制读写分离及奇怪的问题
  • PHP面试之三:MySQL数据库
  • Python爬虫--- 1.3 BS4库的解析器
  • rabbitmq延迟消息示例
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 阿里云应用高可用服务公测发布
  • 翻译:Hystrix - How To Use
  • 全栈开发——Linux
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 关于Android全面屏虚拟导航栏的适配总结
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (转)nsfocus-绿盟科技笔试题目
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET delegate 委托 、 Event 事件,接口回调
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET简谈设计模式之(单件模式)
  • .NET连接MongoDB数据库实例教程
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • [1181]linux两台服务器之间传输文件和文件夹
  • [Android]将私钥(.pk8)和公钥证书(.pem/.crt)合并成一个PKCS#12格式的密钥库文件
  • [Avalon] Avalon中的Conditional Formatting.
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)