poi 导出excel(传入map类型)
来源:互联网 发布:umeng移动端数据统计 编辑:程序博客网 时间:2024/05/16 10:59
工具类:
public HSSFWorkbook exportExcelByList(HSSFWorkbook workbook, int sheetNum,String title, String[] headers, String[] columNames,
List<Map<String,Object>> dataset,String pattern){
// 生成一个表格
HSSFSheet sheet = workbook.createSheet();
workbook.setSheetName(sheetNum,title);
// 设置表格默认列宽度为15个字节
sheet.setDefaultColumnWidth((short) 15);
// 产生表格标题行
HSSFRow row = sheet.createRow(0);
HSSFCell cell = row.createCell(0);
for (short i = 0; i < headers.length; i++){
cell = row.createCell(i);
HSSFFont font = (HSSFFont) workbook.createFont();
font.setFontHeightInPoints((short) 12); // 字体高度
font.setFontName("宋体"); // 字体
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); // 宽度加粗
HSSFCellStyle style = (HSSFCellStyle) workbook.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中
style.setFont(font);
cell.setCellStyle(style);
HSSFRichTextString text = new HSSFRichTextString(headers[i]);
cell.setCellValue(text);
}
// 遍历集合数据,产生数据行
int index = 0;
for(int ii = 0;ii<dataset.size();ii++){
index++;
row = sheet.createRow(index);
Map<String,Object> map = dataset.get(ii);
for (short i = 0; i < columNames.length; i++){
cell = row.createCell(i);
try{
Object value = map.get(columNames[i]);
String textValue = null;
// 判断值的类型后进行强制类型转换
if(null != value){
if (value instanceof Date){
Date date = (Date) value;
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
textValue = sdf.format(date);
}else{
// 其它数据类型都当作字符串简单处理
textValue = value.toString();
}
}
// 如果不是图片数据,就利用正则表达式判断textValue是否全部由数字组成
if (textValue != null){
Pattern p = Pattern.compile("^//d+(//.//d+)?$");
Matcher matcher = p.matcher(textValue);
if (matcher.matches()){
// 是数字当作double处理
cell.setCellValue(Double.parseDouble(textValue));
}else{
HSSFRichTextString richString = new HSSFRichTextString(textValue);
cell.setCellValue(richString);
}
}else{
textValue="";
}
}catch (Exception e){
e.printStackTrace();
}
}
}
return workbook;
}
action类:
public String exportBiologicalAnalysis(){
// 声明一个工作薄
HSSFWorkbook workbook = new HSSFWorkbook();
ExportExcel<Sample> ex = new ExportExcel<Sample>();
int total=biologicalAnalysisService.findCount(conditions);
List<Map<String,Object>> biologicalAnalysis=new ArrayList<Map<String,Object>>();
if(total>0){
biologicalAnalysis=biologicalAnalysisService.find(conditions, 0, total);
}
String[] headers = {"批次","源序号","代码","文库名称(唯一标识)","文库编号","barcode","实验使用芯片","捕获文库名称","data/G","实验设计","优先级","分析范围(程序生成)","实验备注","上机时间","任务日期","采血类型","检测项目","产品线","任务备注","其他说明","合作机构","姓名","姓名(系统修正)","性别","年龄","家系号","与先证者关系","患者/轻微表型/正常","客户单位","科室","客户名字","样本类型","科研目的"};
String[] columNames = {"batchNo","resourceCode","seqCode","libraryName","libraryCode","barcode","chip","captureLibrary","seqData","design","priority","analysisRange","seqRemark","sequencTime","taskDate","diccode","examname","classescode","taskRemark","otherRemark","insName","checkerName","amendName","gender","age","familyCode","relativeCode","diseaseCondition","hospitalName","departmentName","doctorName","checkType","scientificPurposes"};
try {
workbook = ex.exportExcelByList(workbook,0,"生物分析",headers,columNames, biologicalAnalysis);
ByteArrayOutputStream output = new ByteArrayOutputStream();
workbook.write(output);
byte[] ba = output.toByteArray();
excelFile = new ByteArrayInputStream(ba);
output.flush();
output.close();
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS;
}
- poi 导出excel(传入map类型)
- Java Web利用POI导出Excel的示例(不在数据库取数据,Map类型的数据)
- JAVA POI Excel导出,数据源可以是List<Map>或者List<Model>类型
- excel导出(POI实现)
- java 导出excel(POI)
- (转载)poi导出Excel
- POI导出Excel(一)
- POI导出Excel(二)
- JavaWeb中POI导入和导出Excel、Map键值类型转换、时间格式化、对象赋值等常见工具类集锦
- Excel POI导出excel
- POI-----POI导出Excel实例
- 【POI框架实战】——POI导出Excel时设置单元格类型为数值类型
- poi ,Struts2 导出Excel运用(一)
- poi ,Struts2 导出Excel运用(二)
- poi ,Struts2 导出Excel运用(三)
- poi的导出excel(直接下载)
- JAVA实现Excel导入/导出(POI)
- [2] java导出Excel(POI)
- Struts(一)由来
- 仿Ios弹窗效果一
- C#源代码—在windows窗体中添加一个名为lblShow的Lable控件4,创建可变字符串,字符串转换为字符型
- List集合去掉重复代码
- 2016【太原UI设计师】郭文军讲解Windowsphone界面设计的规范
- poi 导出excel(传入map类型)
- BZOJ 1264: [AHOI2006]基因匹配Match|动态规划
- java 多线程(3) 线程的基本概念 / 创建和启动 / run() / start()
- 关闭横屏 只允许竖屏
- CodeForces 413B Spyke Chatting
- myeclipse8.5破解
- 微信XML解析
- KVO Considered Harmful
- shell脚本中单引号和双引号的区别