JXL导出Excel工具类
- 将Excel中的数据读取到List<Map<String, Object>>集合中
|
package com.mvc.util;
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;
import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook;
/** * 使用jxl操作Excel的工具类 * * @author */ public
/** * 将Excel 中的数据导入到List<Map<String, Object>>中 * 2003) * * @param input * 指定excel文件输入流 * @param index 开始) * @param columnName * (注意:顺序需要保持一致) : 列名称(对应数据库中的字段) */ public // 定义文本簿 Workbook rwb = null; // 定义容器 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); // 定义容器存储列名称 List<String> columnList = new ArrayList<String>();
try { rwb = Workbook.getWorkbook(input); if (index == null || index > rwb.getSheets().length || index < 0) { index = 0; } // 获得第一个工作表对象 Sheet sheet = rwb.getSheet(index); int int for (int Map<String, Object> map = new HashMap<String, Object>(); for (int // 表示获取第i行第j列 Cell cell = sheet.getCell(j, i); String result = cell.getContents(); // 存储列名称 if (i == 0 && columnName == null) { columnList.add(result); } else { if (columnName == null) { map.put(columnList.get(j), result); } else { map.put(columnName[j], result); } } } if (i != 0) { list.add(map); } } } catch (BiffException | IOException e) { e.printStackTrace(); return } finally { if (rwb != null) { rwb.close(); } } return }
/** * 将List集合中的对象导入到Excel文件中 * * @author * @date * @param bean * :实体类对象的ArrayList集合 * @param str * : Excel文件的路径 */ public WritableWorkbook book = null;// 编写WritableWorkbook对象,该对象代表了excel对象 try { book = Workbook.createWorkbook(new File(str));// 创建文件路径str WritableSheet sheet = book.createSheet("sheet", 0);// 获取sheet对象 // 对集合进行遍历 for (int Object ob = bean.get(i);// 集合中的对象不确定,用Object代替 // 利用反射机制 Class Field[] fi = cl.getDeclaredFields();// 获取所有属性的对象,用来获取属性 for (int fi[j].setAccessible(true);// 启用访问权限 // 获取值 Label la = new Label(j, i, String.valueOf(fi[j].get(ob))); sheet.addCell(la);// 将数据写入sheet对象中 } } book.write(); } catch (Exception e) { e.printStackTrace(); } finally { try { book.close(); } catch (Exception e) { e.printStackTrace(); } } }
/** * javaBean 转 Map * * @param object * 需要转换的javabean * @return * @throws Exception */ public Map<String, Object> map = new HashMap<String, Object>();
Class Field[] fields = cls.getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); map.put(field.getName(), field.get(object)); } return }
/** * @param map * 需要转换的map * @param cls * 目标javaBean的类对象 * @return * @throws Exception */ public Object object; try { object = cls.newInstance(); for (String key : map.keySet()) { Field temFiels = cls.getDeclaredField(key); temFiels.setAccessible(true); if (temFiels.getType().toString().equals("class java.util.Date")) { temFiels.set(object, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(map.get(key).toString())); } else { temFiels.set(object, map.get(key)); } } } catch (Exception e) { e.printStackTrace(); return } return }
public try { InputStream is = new FileInputStream("D://test.xls"); // 指定Excel的列名称 List<Map<String, Object>> list = getDataFromExcel(is, 0, new String[] { "membername", "memberid", "membercardid", "points", "operationtype", "changetime" }); // 不指定Excel的列名称 // List<Map<String, Object>> list = getDataFromExcel(is, 0, null); for (int System.out.println(list.get(i)); /** * 打印出的结果({changetime=2017-02-15 19:01:57, membercardid=2017021517585890892074, * operationtype=消费获取, membername=李白, memberid=C90B78E8AB8E4F43B27D084F285364B1, points=21}) */ } } catch (FileNotFoundException e) { e.printStackTrace(); } }
} |
JXL导出Excel工具类的更多相关文章
- 导入导出Excel工具类ExcelUtil
前言 前段时间做的分布式集成平台项目中,许多模块都用到了导入导出Excel的功能,于是决定封装一个ExcelUtil类,专门用来处理Excel的导入和导出 本项目的持久化层用的是JPA(底层用hibe ...
- javaEE开发之导出excel工具类
web开发中,一个系统的普通需求也包含导出excel,一般採用POI做统计报表导出excel. 导出excel工具类: import java.io.FileOutputStream; import ...
- Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...
- 导出Excel工具类
import java.io.OutputStream; import java.lang.reflect.Method; import java.text.SimpleDateFormat; imp ...
- java导出excel工具类
java导出excel须要使用HSSFWorkbook这个类,须要导入poi-3.6-20091214.jar 工具类调用例如以下: package com.qlwb.business.util; i ...
- Java XSSF 导出excel 工具类
参数解释: title:导出excel标题.headers 导出到excel显示的列头. columns 对应数据库字段 .list 导出数据1.pox中添加依赖 <dependency> ...
- 使用POI导出EXCEL工具类并解决导出数据量大的问题
POI导出工具类 工作中常常会遇到一些图表需要导出的功能,在这里自己写了一个工具类方便以后使用(使用POI实现). 项目依赖 <dependency> <groupId>org ...
- NPOI导入导出Excel工具类
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Ref ...
- 关于Excel导入导出POI工具类
import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import ...
随机推荐
- PHP之文件大小的转换函数
直接看代码: <?php function tosize($size){ $s = $size; $dw = "";#pow(2,40)是2的40次方. if($s > ...
- 编译hadoop,spark遇到的问题总结
编译hadoop2.6.4 1.JDK8版本过高,换成JDK7: 2.换成命令行mvn package -Pdist,native -DskipTests-Dtar-Dmaven.javadoc.sk ...
- EAGAIN、EWOULDBLOCK、EINTR与非阻塞 长连接
EAGAIN.EWOULDBLOCK.EINTR与非阻塞 长连接 EWOULDBLOCK用于非阻塞模式,不需要重新读或者写 EINTR指操作被中断唤醒,需要重新读/写 在Linux环境下开发经常会碰到 ...
- 1.apache php mysql phpmyadmin的安装配置
一.安装apache ①.双击文件Apach_2.2.8_win32-x86-no_ssl.msi,弹出欢迎界面.单NEXT按钮,进入到License Agreement(许可协议)界面. 同意并ne ...
- jQuery:(一)jQuery简介
一.jQuery简介jQuery由美国人John Resig于2006年创建jQuery是目前最流行的JavaScript程序库,它是对JavaScript对象和函数的封装. 二.jQuery的优势1 ...
- MyBatis 是一款优秀的持久层框架
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...
- php -- 文件操作(创建、复制、移动、删除)
创建 文件夹 bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $con ...
- 【UVa】Partitioning by Palindromes(dp)
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=27&page=sh ...
- Mac终端使用mysql
1.安装完mysql后给mysql命别名 alias mysql=/usr/local/mysql/bin/mysql aliasmysqladmin=/usr/local/mysql/bin/mys ...
- MySQL5.6绿色版安装(mysql-5.6.24-winx64.zip)
1.数据库安装 Mysql官方网站:http://www.mysql.com/,数据库下载地址:http://www.mysql.com/downloads/.从官方网站可以找到两种文件包,一种是ex ...