l创建Excel文件
最近的项目中遇到需要将List<Map<String,String>>存储到Excel文件中,为满足此需求设计实现了如下函数:
/**
* 将MapList转化为Excel文件
* @param excelFile--excel文件的路径
* @param mapList---要存储的mapList
* @param titles----对应的列名称
* @param enTitles---列名称map的keys数组
* @throws Exception
*/
public void mapListToExcel(String excelFile,List<Map<String, String>> mapList, Map<String, String> titles, String[] enTitles) throws Exception{
FileOutputStream fos=new FileOutputStream(excelFile);
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFCellStyle style = workbook.createCellStyle();
List<HSSFSheet> sheets = new ArrayList<HSSFSheet>();
/**
* 设置其它数据风格
*/
style.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 设置单无格的边框为粗体
style.setBottomBorderColor(HSSFColor.BLACK.index); // 设置单元格的边框颜色.
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setLeftBorderColor(HSSFColor.BLACK.index);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setRightBorderColor(HSSFColor.BLACK.index);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setTopBorderColor(HSSFColor.BLACK.index);
style.setWrapText(true);//自动换行 int columnNum = 0; //列数
int rowNum = 0; //行数
int sheetNum = 0; //工作簿数 if(mapList == null || mapList.size() == 0)
{
sheets.add(createSheet(workbook,titles,style,"sheet" + sheetNum,enTitles));
return ;
} Iterator<Map<String, String>> iter = mapList.iterator(); while(iter.hasNext())
{
Map<String, String> obj = iter.next();
if(rowNum == 0)
{
sheets.add(createSheet(workbook,titles,style,"sheet" + sheetNum,enTitles));
sheetNum++;
}
rowNum++;
columnNum = 0;
HSSFRow dataRow = sheets.get(sheetNum-1).createRow(rowNum); for(String title: enTitles){
HSSFCell cell = dataRow.createCell(columnNum);
String value = obj.get(title);
cell.setCellValue(value);
cell.setCellStyle(style);
columnNum++;
} if(rowNum > 65534)
{
rowNum = 0;
}
} workbook.write(fos);
fos.close(); } /**
创建Excel工作簿
*/
private HSSFSheet createSheet(HSSFWorkbook workbook,Map<String, String> titles,HSSFCellStyle style,String sheetname, String[] enTitles)
{
HSSFSheet sheet = workbook.createSheet(sheetname);
sheet.autoSizeColumn(1, true); //列自适应宽度
int columnNum = 0;
int rowNum = 0;
HSSFRow titleRow = sheet.createRow(rowNum); for(String key: enTitles){
HSSFCell cell = titleRow.createCell(columnNum);
String title = titles.get(key);
cell.setCellValue(title);
cell.setCellStyle(style);
columnNum++;
}
return sheet;
}
l创建Excel文件的更多相关文章
- NPOI 2.0 创建Excel文件
如果只是简单的处理的话,只需要引用下载压缩包里的 NPOI.dll (office 2003)或 NPOI.OOXML.dll (office 2007) 文件而已. using System; us ...
- Java Struts2 POI创建Excel文件并实现文件下载
Java Struts2 POI创建Excel文件并实现文件下载2013-09-04 18:53 6059人阅读 评论(1) 收藏 举报 分类: Java EE(49) Struts(6) 版权声明: ...
- C#创建Excel文件并将数据导出到Excel文件
工具原料: Windows 7,Visual Studio 2010, Microsoft Office 2007 创建解决方案 菜单>新建>项目>Windows窗体应用程序: 添加 ...
- Jxl创建Excel文件和解析Excel文件
import java.io.File; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableSheet; im ...
- 读取并创建excel文件(.xls)
第三方库,附件 缺点:该库只支持.xls文件的操作 1.读取excel文件 例子: try { /** * 后续考虑问题,比如Excel里面的图片以及其他数据类型的读取 **/ InputStream ...
- java使用poi创建excel文件
import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import or ...
- 在自定义目录下,按日期创建excel文件
在指定文件目录下,新建以当前日期命名的excel 文件,如果文件已经存在,在文件中新建一个sheet页来存放数据 import datetime import xlrd, xlwt import re ...
- Creating Excel files with Python and XlsxWriter(通过 Python和XlsxWriter来创建Excel文件(xlsx格式))
以下所有内容翻译至: https://xlsxwriter.readthedocs.io/ #----------------------------------------------------- ...
- HSSFWorkbook 创建Excel文件
1.项目代码实例 @Override public OutputStream exportAucLotData(String id, String password, OutputStream out ...
随机推荐
- SpringMvc的创建流程以及2种加载配置文件的方式
1.首先创建个web项目,第一步导入相应的jar包,并且buildtoPath 2.用elipse或myeclipse点击进入web.xml中 按住 Alt+ / 有个提示 找到前面带 #Dispat ...
- javascript将object转string字符串
var jsonData = {a:1,b:2}; function obj2string(o) { var r = []; if (typeof o == "string") { ...
- 详解ASP.NET MVC的请求生命周期
本文的目的旨在详细描述asp.net mvc请求从开始到结束的每一个过程. 我希望能理解在浏览器输入url并敲击回车来请求一个asp.net mvc网站的页面之后发生的任何事情. 为什么需要关心这些? ...
- Entity Framework 实体框架的形成之旅--实体数据模型 (EDM)的处理(4)
在前面几篇关于Entity Framework 实体框架的介绍里面,已经逐步对整个框架进行了一步步的演化,以期达到统一.高效.可重用性等目的,本文继续探讨基于泛型的仓储模式实体框架方面的改进优化,使我 ...
- Android 图标尺寸与设计
样例和图解 外框:整体大小 ↑ 边框:图标留白大小 ↓ 图标:外图标的大小 ↑ 阴影:阴影特效大小 ↓ 图形:内图标的大小 ↑ 可选视图权重:使用两种类型的图形尺寸可以达到统一的视觉权重(可选), ...
- 不安装Oracle客户端使用PLSQL连接Oracle数据库的方法
1,下载PL\SQL http://dl8.cr173.com/soft1/PLSQLDeveloper10_ha.zip(这个是我下载的,带破解和汉化); 2,下载完后傻瓜式安装 ,这里说下,1是P ...
- jquer基础篇二
jquery中的过滤选择器: 1.通过标签的内容来进行过滤 :contains(’内容关键字‘) 例: $("input").click(function () { $(" ...
- NOIP2014初赛分数线及金华上线名单
NOIP2014初赛分数线及金华上线名单 分数线:提高组81.5,普及组93 这分数线还能再高些吗?悲催的浙江. 金华上线普及组名单: 地市 姓名 学校 年级 参赛语种 成绩 金华 成浩鹏 稠州丹溪校 ...
- 实战Java虚拟机之一“堆溢出处理”
从今天开始,我会发5个关于java虚拟机的小系列: 实战Java虚拟机之一“堆溢出处理” 实战Java虚拟机之二“虚拟机的工作模式” 实战Java虚拟机之三“G1的新生代GC” 实战Java虚拟机之四 ...
- Unity学习疑问记录之查找
unity中提供了获取对象的五种方法: 通过对象名称(Find方法) 通过标签获取单个游戏对象(FindWithTag方法) 通过标签获取多个游戏对象(FindGameObjectsWithTags方 ...