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 ...
随机推荐
- (iOS)Base64加密和DES加密、以及JAVA和iOS中DES加密统一性问题
我们在项目中为了安全方面的考虑,通常情况下会选择一种加密方式对需要安全性的文本进行加密,而Base64加密和DES64加密是常用的加密算法.我记得我在前一个项目中使用的就是这两种加密算法的结合:Bas ...
- asp.net 数据库面试题(基础)
今天到某公司笔试,数据库考的比较多,但是说老实话,考的也比较基础.现在趁回忆得起来,将数据库知识简单整理如下: 一.建表指令 比如创建一个学生表student,它由学号Sno,姓名Sname,性别Ss ...
- C# 词法分析器(五)转换 DFA
系列导航 (一)词法分析介绍 (二)输入缓冲和代码定位 (三)正则表达式 (四)构造 NFA (五)转换 DFA (六)构造词法分析器 (七)总结 在上一篇文章中,已经得到了与正则表达式等价的 NFA ...
- JSON字符串语法
JSON 语法是 JavaScript 对象表示语法的子集. 数据在键/值对中展示, 多个数据由逗号分隔, 花括号保存一个对象, 方括号保存一个数组 JSON具有以下形式: 1. 对象(object) ...
- 数论 - Vanya and Computer Game
Vanya and his friend Vova play a computer game where they need to destroy n monsters to pass a level ...
- css样式
这是CSS的定义经常用到的样式: body{ width:100%; background:#000; text-align:center;font:12px "宋体", Aria ...
- 《bootstrap》实战---作为了解
感觉这句话说的挺有道理,"一些最佳实践不管是语义标记还是移动优先的设计,抑或资源性能优化,都需要额外的时间和精力才能时间".用心做,才会做好.
- 使用CallableStatement的用法
package Test; import java.sql.*; public class Test7 { public static void main(String[] args) { Conne ...
- union
union是C++中一个类,平时自己用的比较少,了解了一些特性后觉得在内存要求比较高的地方还是大有可为,总结一下. C++中的struct和union内部都可以定义 数据 和 函数, 两个跟 clas ...
- 巧妙利用before和after伪类实现文字的展开和收起
需求:一段文字,当收起的时候,显示4行,并且多余4行的部分用省略号表示,关键是在省略号前面留有空白部分来放一些图标等东西:展开的时候,全部显示. 例如下面的示例图: 收起的时候: 展开的时候: 在不用 ...