【java】:生成excel
//生成报表公用方法
//excelName: 生成的文件名
//list:时间/日期/描述
//listSelectFiled: 标题
//showContent : 文件内容bean
//生成报表公用方法
public String createExcelFile(String excelName,List<String[]> listSelectField,String[] fields,List<String[]> showContent){
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFCellStyle setBorder = wb.createCellStyle();
//设置背景颜色
//setBorder.setFillBackgroundColor((short)13);
//setBorder.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
//设置边框
setBorder.setBorderBottom(HSSFCellStyle.BORDER_THIN);
setBorder.setBorderLeft(HSSFCellStyle.BORDER_THIN);
setBorder.setBorderTop(HSSFCellStyle.BORDER_THIN);
setBorder.setBorderRight(HSSFCellStyle.BORDER_THIN);
//设置居中
setBorder.setAlignment(HSSFCellStyle.ALIGN_CENTER);//居中
//设置字体
HSSFFont font = wb.createFont();
font.setFontName("黑体");
font.setFontHeightInPoints((short)16);//设置字体大小
HSSFFont font3 = wb.createFont();
font3.setFontName("宋体");
//font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
font3.setFontHeightInPoints((short)14);//设置字体大小
HSSFFont font2 = wb.createFont();
font2.setFontName("宋体");
//font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
font2.setFontHeightInPoints((short)12);//设置字体大小
setBorder.setFont(font); //选择需要的字体
//设置列宽
for (int i = 0; i < fields.length; i++) {
sheet.setColumnWidth((short)i, (short)4000);
}
//所有内容居中显示的 样式(内容部分)
HSSFCellStyle cellstyle = wb.createCellStyle();
cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//居中
cellstyle.setFont(font2);
HSSFCellStyle selestyle = wb.createCellStyle();
selestyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//居中
selestyle.setFont(font2);
//合并单元格
Region region = new Region(0,(short)0,0,(short)14);
sheet.addMergedRegion(region);
//第一行标题
HSSFRow row1 = sheet.createRow(0);
row1.setHeight((short)500);
HSSFCell celltitle = row1.createCell((short)0);
celltitle.setCellType(HSSFCell.CELL_TYPE_STRING);
celltitle.setCellValue(excelName);
celltitle.setCellStyle(setBorder);
//合并单元格
int ce = 0;
for (int i = 0; i < listSelectField.size(); i++) {
sheet.addMergedRegion(new Region(1,(short)ce,1,(short)(++ce)));
ce+=2;
}
//第二行查询条件
ce=0;
HSSFRow row2 = sheet.createRow(1);
row2.setHeight((short)300);
for (int i = 0; i < listSelectField.size(); i++) {
HSSFCell selectfields1 = row2.createCell((short)ce);
selectfields1.setCellType(HSSFCell.CELL_TYPE_STRING);
selectfields1.setCellValue(listSelectField.get(i)[0]+":"+listSelectField.get(i)[1]);
selectfields1.setCellStyle(cellstyle);
ce+=3;
}
//需要显示的字段名称
HSSFRow row3 = sheet.createRow(2);
int index= 0;
for(String str : fields){
HSSFCell cell = row3.createCell((short)index);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(str);
cell.setCellStyle(cellstyle);
index++;
}
//需要显示的内容
for (int i = 0; i < showContent.size(); i++) {
HSSFRow row = sheet.createRow(i+3);
String[] content = showContent.get(i);
for(int j = 0;j<content.length;j++){
HSSFCell cell = row.createCell((short)j);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(content[j]);
cell.setCellStyle(cellstyle);
}
}
String destFileName = StringUtil.getNowDateFormat(null);
String fileName = excelName+"("+destFileName+").xls";
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"+fileName);
try {
String saveurl = PathManager.getWEBINFPath()+java.io.File.separator+".."+java.io.File.separator+"ucstar_plugins"+java.io.File.separator+"ucstarwebcall"+java.io.File.separator+"reportfile"+java.io.File.separator+"";
File fileurl = new File(saveurl);
if(!fileurl.exists()){
fileurl.mkdirs();
}
File f = new File(saveurl+java.io.File.separator+fileName);
System.out.println("<<<<<<<<<<<<<<<<<<<<<<<<<<<<"+saveurl+java.io.File.separator+fileName);
f.createNewFile();
FileOutputStream fos = new FileOutputStream(f);
wb.write(fos);
fos.close();
Log.console(">>>>>>>生成Excel成功!");
} catch (Exception e) {
Log.console(">>>>>>>生成Excel失败:"+e.getMessage());
return "";
}
return fileName;
}
}
【java】:生成excel的更多相关文章
- java 生成Excel开门篇
本随笔的Excel所用的poi jar包(3.17版本)链接: https://pan.baidu.com/s/1gaa3dJueja8IraUDYCSLIQ 提取密码: 9xr7 简单实现:两个类: ...
- oracle PL/SQL调用Java生成Excel
现在有个需求, 要求编写oracle存储过程生成Excel文件到指定目录, 但是oracle自己的API貌似不太给力, 所以只能通过另一种更强大的语言来实现了 ——Java.有一个Java框架 ...
- JAVA生成EXCEL模板
JAVA生成excel模板,支持1.必填字段前加 红色 * 2.定义可选值下拉列表 valList3.定义名称并通过名称设置可选值 refName(名称在sheet2,sheet2自动隐藏)4.支持设 ...
- 两种方式实现java生成Excel
Web应用中难免会遇到需要将数据导出并生成excel文件的需求.同样,对于本博客中的总结,也是建立在为了完成这样的一个需求,才开始去了解其实现形式,并且顺利完成需求的开发,先将实现过程总结于此.本博文 ...
- Java生成excel导出文件(使用poi+JXL)
1.使用poi生成文件 package com.mi.entity; import java.util.Date; public class Student { private int id; pri ...
- [转]java生成 excel 并导出文件
原文:https://blog.csdn.net/xunwei0303/article/details/53213130 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta P ...
- java生成excel报表文件
此次简单的操作将数据从数据库导出生成excel报表以及将excel数据导入数据库 首先建立数据库的连接池: package jdbc; import java.io.FileInputStream; ...
- java生成excel,word文件
第一部分: 在网站开发中,用户可能需要打印word或者excel表,这种需求是非常多的. java语言生成excel表格和python的方式有点像,使用Apache POI的组件,一通全通.开发过程通 ...
- JAVA生成EXCEL图表
跟据客户的要求,需要开发一套包括图形的报表,还需要导出WORD 图表需要这样: 这样: 这样: 还有这样: 接下来是实现思路: 以往用的最多的就是JFreechart,手上也有实现各种图形的资源,但是 ...
- java生成excel
package test.poi; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; ...
随机推荐
- oracle的char和varchar类型
源地址:https://zhidao.baidu.com/question/140310197.html varchar与char的区别就在于是否可变长度.char(5)就是定义一个5个字符长度的字符 ...
- [HTML] CSS3 文本效果
CSS3 文本效果 CSS3中包含几个新的文本特征. 在本章中您将了解以下文本属性: text-shadow word-wrap 浏览器支持
- Oracle时间戳 与时间之间的相互转换
Unix时间戳记是从'1970-01-01 00:00:00'GMT开始的秒数,表现为整数型. Oracle中的时间是Date型,以下函数提供了两种时间转换的Oracle函数 (1)从Unix时间戳记 ...
- cocos2dx音乐与音效
// 预加载音乐和音效 SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(CCFileUtils::sharedFileUtil ...
- 关于n!mod p
2016.1.26 让我们来研究一下关于n!在mod p下的性质,当然这里p是质数. 首先n!=a*pe,其中p不可整除a.我们现在来做两件事情,求e和a mod p. 显然,n/p表示[1,n]中p ...
- out参数,ref参数,params参数数组
params参数数组 params关键字可以为方法指定数目可变的参数.params关键字修饰的参数,可以传入任意数目的同类型参数,甚至可以不传入参数. 不过params修饰的参数必须是方法的最后一个参 ...
- 后一个div无法遮挡住前一个有img的div
这个标题实在是我无奈之下才取出来的,毕竟我文采有限~ 今天我遇到的一个eggpain的问题: 前提:当页面上有两个没有background的div,大小一样,绝对定位在同一个地方(让第二个遮挡住第一个 ...
- Linux:永久修改网卡的MAC地址
比如:搭建一个虚拟机环境之后,需要N个一样的系统,可以本地复制虚拟机来实现.但是复制之后,网卡的MAC地址一样,无法使用,这时候需要修改网卡的MAC地址,且希望重启系统之后,仍生效的,步骤如下: 1. ...
- tcp协议-http协议-time-wait-close-wait必知
前言: tcp四次挥手过程中,谁主动断开,谁有time_wait,被动断开一方会有close_wait time_wait:保持端口占用2mls~4min,避免对方还有一些tcp片发往这个端口,新 ...
- cocos2d-js 3.0rc0加载游戏引擎时长时间黑屏
如果是原始引擎的话是会比较大一些,但是最终发布的时候我们都建议你打包成release版,这个可以使用cocos命令 cocos compile -p web 来完成轻松打包,会在你的项目目录下创建一个 ...