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[12]-文件处理 文件 目录
00x1 文件的属性 文件属性 <?php //-------------------------定义大小转换函数--------------- function changesize_dw($ ...
- 用c++封装linux系统调用
#include <pthread.h> #include <cstdlib> #include <ctime> #include <iostream> ...
- 扩展RBAC用户角色权限设计方案<转>
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色- ...
- rsync详解之exclude排除文件
rsync详解之exclude排除文件 问题:如何避开同步指定的文件夹? --excludersync --exclude files and folders http://articles.sl ...
- golang Time to String
golang Time to String allenhaozi · 2016-09-02 09:00:00 · 2447 次点击 · 预计阅读时间 1 分钟 · 19分钟之前 开始浏览 这是一个创建 ...
- ASP.NET MVC4 异常拦截
ASP.NET MVC4 程序发生异常时,通过拦截Action的异常,重写ActionFilterAttribute 的方法OnActionExecuted实现. 具体实现代码如下: /// < ...
- 关于Unity的开发模式
Unity是组件化的开发模式,总结起来就是节点与组件.节点就像人,组件就像工具,人拿不同的工具,就变成不同的角色,有不同的作用.人+医学常识=医生. 1.每个空节点创建后,刚开始只有一个Transfo ...
- error: icpc: Command not found
交叉编译qt的程序时,出现错误:error: icpc: Command not found. 解决方法,详情查看链接. http://www.cnblogs.com/zengjfgit/p/4744 ...
- CListBox自动换行显示
需要在ListBox控件中显示一些信息.为方便查看,不使用水平滚动条.当要输出的字符串占用的宽度超过ListBox的宽度时,截断字符串,剩余的在下一行显示. 1. 计算ListBox所占的宽度,用Ge ...
- 兔子--android中百度地图的开发
效果: API Key的申请地址:http://lbsyun.baidu.com/apiconsole/key 申请注意事项: 安全码:以下界面的SHA1 fingerprint值+;+包名 比如: ...