导入导出封装的工具类 (一) 利用POI封装
对于导入导出各个项目中差点儿都会用到,记得在高校平台中封装过导入导出这部分今天看了看是利用JXL封装的而经理说让我用POI写写导出,这两个导入导出框架是眼下比較流程和经常使用的框架,有必要都了解一下。
写了写代码认为导入导出这一块底层都是一样的,差点儿全部的框架和别的牛人也好都是底层利用POI或JXL实现,比的是谁对这部分封装的好并且每一个项目中对导入导出详细的细节是不同的,因此,有必要了解了解怎么样操作POI,学学使用它的API做导入导出或许第一步你封装的没有别人那么好,你也会收获非常多了解他们封装的思路和想法,你就会去往哪方面思考、学会站在巨人的肩膀上,才干更好的提高,
封装这部分我看看了看大的论坛上面,几年曾经甚至十几年前别人就写出了封装非常好的工具类,作为我们假设从头開始去写就太傻了。
以下是一个导出的封装的简单工具类,临时支持单表导出封装还在继续中,认为思路不错,我们还能够把控制excel的样式、合并单元格、表头、字体等封装起来单独控制,工具类嘛我们须要的功能都能够往里面放。
/**
* @deprecated 讲一个list数组导出到excel
* @param objList
* @param title
* @param strHeader
* @param strField
* @param outputPath
*/
public static void exportExcelByMap(List<Map<String,String>> objList, String title, String strHeader, String strField, String outputPath) { // 创建工作簿(Excel文件)
HSSFWorkbook workbook = new HSSFWorkbook(); // 创建Excel工作簿的第一个Sheet页
HSSFSheet sheet = workbook.createSheet(title); // 创建Sheet页的标题行
createHeader(sheet, strHeader); // 创建Sheet页的填充数据
String[] strArray = strField.split(",");
//外循环为行数、内循环为列数
for(int objIndex = 0; objIndex < objList.size(); objIndex++) {
Map map = objList.get(objIndex);
HSSFRow row = sheet.createRow(objIndex + 1);
for(int i = 0; i < strArray.length; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(map.get(strArray[i]).toString());
}
} //保存Excel文件
saveExcelFile(workbook, outputPath);
}
/**
* @deprecated 依据表做表单创建表单的标题行
* @author lls
* @param sheet 表单对象
* @param strHeader 标题行字符串
*/
private static void createHeader(HSSFSheet sheet, String strHeader){
HSSFRow row = sheet.createRow(0); // 创建该页的一行
HSSFCell cell = null;
//取得标题字段的数组
String[] strArray = strHeader.split(","); for(int i = 0; i < strArray.length; i++) {
cell = row.createCell(i); // 创建该行的一列
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(strArray[i]);
} }
上面能够将一个List数组导出到excel,数组里面存放的是map对象,项目里面都是这样的结构不须要对查询出来的list再做任务处理就能够转为excel,主要是循环加推断,POI还有非常多没用用过,仅仅是简单了解一下实现一个简单的导出类,很多其它功能还在完好。
也能够利用封装类写一个带窗体的小程序,能够从数据库表中导出到excel,这种小工具应该也好实现。
类似于JXL、POI这种框架假设想要实现导入导出的功能实现的代码量还是非常多的,有的也非常复杂,假设想要excel有各种样式和效果类似预报表的excel会更不好实现,下篇博客给大家介绍一下,更加简洁、更加好用的导出到excel工具,它支持excel模板我们能够直接在excel里面写代码,简单有用的一个小框架。
导入导出封装的工具类 (一) 利用POI封装的更多相关文章
- POI导入导出excel(附工具类)
关于POI导出excel的功能我在前面的文章已经写过了,POI导出excel的三种方式 , 导出表格数据到excel并下载(HSSFWorkbook版) ,本篇文章主要是将导入导出功能进一步地封装,在 ...
- 打印 Logger 日志时,需不需要再封装一下工具类?
在开发过程中,打印日志是必不可少的,因为日志关乎于应用的问题排查.应用监控等.现在打印日志一般都是使用 slf4j,因为使用日志门面,有助于打印方式统一,即使后面更换日志框架,也非常方便.在 < ...
- Workbook导出excel封装的工具类
在实际中导出excel非常常见,于是自己封装了一个导出数据到excel的工具类,先附上代码,最后会写出实例和解释.支持03和07两个版本的 excel. HSSF导出的是xls的excel,XSSF导 ...
- .NET3.5中JSON用法以及封装JsonUtils工具类
.NET3.5中JSON用法以及封装JsonUtils工具类 我们讲到JSON的简单使用,现在我们来研究如何进行封装微软提供的JSON基类,达到更加方便.简单.强大且重用性高的效果. 首先创建一个类 ...
- 转:轻松把玩HttpClient之封装HttpClient工具类(一)(现有网上分享中的最强大的工具类)
搜了一下网络上别人封装的HttpClient,大部分特别简单,有一些看起来比较高级,但是用起来都不怎么好用.调用关系不清楚,结构有点混乱.所以也就萌生了自己封装HttpClient工具类的想法.要做就 ...
- 使用Apache poi来编写导出excel的工具类
在JavaWeb开发的需求中,我们会经常看到导出excel的功能需求,然后java并没有提供操作office文档的功能,这个时候我们就需要使用额外的组件来帮助我们完成这项功能了. 很高兴Apache基 ...
- MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- JAVA中封装JSONUtils工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- MySQL JDBC事务处理、封装JDBC工具类
MySQL数据库学习笔记(十)----JDBC事务处理.封装JDBC工具类 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit. ...
随机推荐
- node.js + gulp用JENKINS作CI编译
这里还是有点坑,要注意. 安装NODE.JS不说,GULP绿色化也不说. 但要让JENKINS识别环境变量. /etc/profile.... export NODE_HOME=/usr/local/ ...
- ffmpeg编译 --enable :没有命令
参照官方推荐的编译:http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/ build_config.sh总是不过, 问题原因:./config ...
- mysql 监控工具monyog使用总结
1. 下载安装 2. 登录之后,查看 locked queries 2. 慢查询
- 目标识别:Bag-of-words表示图像
BOW (bag of words) 模型简介 Bag of words模型最初被用在文本分类中,将文档表示成特征矢量.它的基本思想是假定对于一个文本,忽略其词序和语法.句法,仅仅将其看做是一些词汇的 ...
- 学习kernel编程的建议
我把我学习kernel编程的过程介绍给大家,希望大家有个参考. 学习kernel编程需要阅读大量的kernel方面的书籍,在此我列举一下我读过的kernel书籍(按时间先后顺序),并给一些建议. 1. ...
- Atom 扩展离线安装
1.下载原始包 2.解压放入atom的packages文件夹中 3.通过nodejs的npm指令进行安装 运行->cmd 4.重启Atom就ok了
- bzoj3611
会构建虚树之后就是noip提高组的题目了稍微难一点的是求代价和,只要注意按一个方向避免重复计算贡献即可 ; type node=record po,next:longint; end; ..] of ...
- c语言_文件操作_FILE结构体解释_涉及对操作系统文件FCB操作的解释_
1. 文件和流的关系 C将每个文件简单地作为顺序字节流(如下图).每个文件用文件结束符结束,或者在特定字节数的地方结束,这个特定的字节数可以存储在系统维护的管理数据结构中.当打开文件时,就建立了和文件 ...
- C#图片处理之: 另存为压缩质量可自己控制的JPEG
处理图片时常用的过程是:读入图片文件并转化为Bitmap -> 处理此Bitmap的每个点以得到需要的效果 -> 保存新的Bitmap到文件使用C#很方便的就可以把多种格式的图片文件读到B ...
- bootm命令中地址参数,内核加载地址以及内核入口地址
bootm命令只能用来引导经过mkimage构建了镜像头的内核镜像文件以及根文件镜像,对于没有用mkimage对内核进行处理的话,那直接把内核下载到连接脚本中指定的加载地址0x30008000再运行就 ...