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 ...
随机推荐
- yield return关键字怎么使用?
在迭代器块中用于向枚举数对象提供值或发出迭代结束信号.它的形式为下列之一: 复制代码 yield return <expression>;yield break; 备注计算表达式并以枚举数 ...
- codeforces 429 On the Bench dp+排列组合 限制相邻元素,求合法序列数。
限制相邻元素,求合法序列数. /** 题目:On the Bench 链接:http://codeforces.com/problemset/problem/840/C 题意:求相邻的元素相乘不为平方 ...
- Linux系统下如何查看物理内存占用率
Linux系统下如何查看物理内存占用率 Linux下看内存和CPU使用率一般都用top命令,但是实际在用的时候,用top查看出来的内存占用率都非常高,如:Mem: 4086496k total, ...
- 【BZOJ】1625: [Usaco2007 Dec]宝石手镯(01背包)
http://www.lydsy.com/JudgeOnline/problem.php?id=1625 太水了. #include <cstdio> #include <cstri ...
- 【BZOJ】1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路(floyd)
http://www.lydsy.com/JudgeOnline/problem.php?id=1624 一开始我打算一个个最短路................................. 然 ...
- iOS开发 - CALayer图层
CALayer的基本使用 在iOS中.你能看得见摸得着的东西基本上都是UIView.比方一个button.一个文本标签.一个文本输入框.一个图标等等.这些都是UIView 事实上UIView之所以能显 ...
- c# windows service(服务)
//安装%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe WindowsServiceTest.exe //卸载%Syst ...
- Spring security UserDetailsService autowired注入失败错误
最近使用spring mvc + spring security 实现登录权限控制的时候,一直不能成功登录,检查过后是dao一直无法注入为null CustomUserDetailConfig.jav ...
- AWS系列-AWS EC2实例类型改配(机器配置升级)
1.1 EC2实例升级需要先把升级的实例停机才能升级 1.2 如图选择需要升级的EC2,点击操作,实例设置,更改实例类型 1.3 选择你要想的配置,点击应用 1.4 启动EC2实例即可
- Hibernate_day02--Hibernate的一级缓存
Hibernate的一级缓存 什么是缓存 1 数据存到数据库里面,数据库本身是文件系统,使用流方式操作文件效率不是很高. (1)把数据存到内存里面,不需要使用流方式,可以直接读取内存中数据 (2)把数 ...