用Java导出为excel表格
导出的是最基础的excel表格,没有任何样式。
<input type="button" value="输出到Excel" onclick='outputtable()' class="btn btn-info margin-right-20" style="width:80px;" /> <script>
function outputtable(){
url="outputAll.action";
window.open(url); }
</script>
在MVC的controller层中,写action
@RequestMapping("/outputEle.action")
public String queEle(HttpServletRequest request,
HttpServletResponse response, TableEle tableEle) throws Exception{
request.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
String flag = "0";
HSSFWorkbook workbook = new HSSFWorkbook();//创建对象
int rowNum=1;
HSSFSheet sheet = workbook.createSheet("电量表"); //在Excel中建一个工作表,其名为默认值
String[] name={"时间","ID","负载电量","风能电量","光伏电量","电池电量"};//字段名,就是excel中的标题头
List<String> list1 = null;
Map<String,List> map = new HashMap<String, List>();
for (int i = 0; i < list.size(); i++) {
list1 = new ArrayList<String>();
list1.add(list.get(i).getTime());
list1.add(list.get(i).getID());
list1.add(list.get(i).getLoad_PH());
list1.add(list.get(i).getWind_PH());
list1.add(list.get(i).getSun_PH());
list1.add(list.get(i).getBattery_PH());
map.put(i+"", list1);
}
int columnCount = name.length;
HSSFRow row1 = sheet.createRow(0); //在索引0的位置创建行
for (short i = 0; i <columnCount; i++) { //遍历字段名
sheet.autoSizeColumn(i);
String columnName=name[i];
HSSFCell cell1 = row1.createCell(i);
cell1.setCellValue(columnName);
}
if(columnCount>=1){
for (int j = 0; j < map.size(); j++) {
HSSFRow row = sheet.createRow(j+1);
list1 = map.get(j+"");
for (short i = 0; i <columnCount; i++) { //遍历集合
HSSFCell cell = row.createCell(i); //将遍历到的写到单元格
sheet.autoSizeColumn(i);
cell.setCellValue(list1.get(i));
}
}
}
ByteArrayOutputStream os = new ByteArrayOutputStream();
workbook.write(os);
byte[] content = os.toByteArray();
InputStream is = new ByteArrayInputStream(content);
// 设置response参数,可以打开下载页面
response.reset();
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename="+ new String(("电量表.xls").getBytes(), "iso-8859-1")); //excel的表格名称
ServletOutputStream out = response.getOutputStream();
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(is);
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
// Simple read/write loop.
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
} catch (final IOException e) {
throw e;
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
return null;
}
bizImpl层
//查找电量中的信息
@Override
public List<TableEle> queEle(TableEle tableEle) {
return eleMapper.queEle(tableEle);
}
用Java导出为excel表格的更多相关文章
- java连接MongoDB查询导出为excel表格
背景 因为项目需求.每一个星期须要统计每一个公众号7天的訪问数,月底就须要统计一个月的訪问数,40多个公众号.每次手动统计都须要花费1个小时,总之是一项无技术耗时耗神的手工活. 于是.想写个程序来统计 ...
- Python实现数据库一键导出为Excel表格
依赖 Python2711 xlwt MySQLdb 数据库相关 连接 获取字段信息 获取数据 Excel基础 workbook sheet 案例 封装 封装之后 测试结果 总结 数据库数据导出为ex ...
- 使用Aspose插件将程序中的表格,导出生成excel表格
http://www.cnblogs.com/lanyue52011/p/3372452.html这个是原文地址 /// <summary> /// 点击按钮,将内存表导出excel表格! ...
- 转载:NPOI导出到Excel表格
NPOI开发包下载:http://pan.baidu.com/share/link?shareid=4025220936&uk=2837994235 需要命名空间 using NPOI.HSS ...
- mysql数据库表格导出为excel表格
在本地数据库中操作如下: 由于excel表格的编码是GBK,所以导出时要加一个设置字符编码: select * from 某个表 into outfile 'd:/文件名.xls' CHARACTER ...
- asp.net数据导出到excel表格,并设置表格样式
1.首先在项目中添加引用
- java导出数据EXCEL的工具类(以spring-webmvc-4.0.4jar为基础)
1.本工具类继承于 spring-webmvc-4.0.4jar文件心中的一个类 AbstractExcelView 2.代码如下 package com.skjd.util; import j ...
- 使用PHPExcel实现数据批量导出为excel表格
首先需要下载PHPExecel类文件,帮助文档可以参考PHPExcel中文帮助手册|PHPExcel使用方法. 下面直接上例子,是我自己写的一个简单的批量导出数据为excel的例子 前台页面 比较简单 ...
- java解析导入excel表格转为实体类javabean,根据实体类中的中文名称
最近公司需求解析excel,一开始使用poi做的挺好的,后来直接上了几十万条数据的excel文件,内存直接溢出了,网上查到apache poi还提供了专门处理海量数据的方法,使用sax解析,果然用了内 ...
随机推荐
- eclipse color theme 选择一款适合你的代码样式
1 点击eclipse菜单栏上的Help ->Install New Softwave , 点击add按钮 随便写个名字 ,添加 地址 http://eclipse-color-theme ...
- WebBrowser打开Word文档的一些注意事项
WebBrowser打开Word文档的一些注意事项 分类: C#word2010-03-31 21:26 5640人阅读 评论(3) 收藏 举报 webbrowser文档browser工具object ...
- jdk环境变量的配置并检测是否配置成功
JDK环境变量配置进行java开发,首先安装JDK,安装后进行环境变量配置1,下载JDK(http://java.sun.com/javase/downloads/index.jsp)2.安装jdk- ...
- Markdown 快速入门
使用Markdown编辑器:MarkdownPad 2 标题: # 标题 ## 标题 ### 标题 #### 标题 ##### 标题 ###### 标题 效果: 标题 标题 标题 标题 标题 标题 下 ...
- PowerDesigner反向工程PostgreSQL数据库
1. 环境准备: a) 安装PowerDesigner,以PowerDesigner15.1为例 b) 安装java jdk,以jdk-7-windows-i586为例 ...
- 401 Not Authorized For MSDEPLOY (msdeployAgentService)
When you get this error from msdeploy:“Error: The remote server returned an error: (401) Unauthorize ...
- 滚动监听(bootstrap)
1.05 腊八节 一直都想知道滚动监听是怎么做出来的,今天终于扒拉出来了,在使用的时候只要加上div定位就可以了... <head> <link rel="styles ...
- Oracle重启 error: ora-01034:oracle not available ora-27101:shared memory realm does not exist
error: ora-01034:oracle not available ora-27101:shared memory realm does not exist 苦咖啡 他的博客中一篇文章完美的解 ...
- JavaScript导出excel文件实现
function getXlsFromTbl(inTblId, inWindow, fname) { try { var allStr = ""; var curStr = &qu ...
- (转)jQuery EasyUI Tree - TreeGrid动态加载子节点
有时我们已经得到充分的分层树形网格(TreeGrid)的数据. 我们还想让树形网格(TreeGrid)按层次惰性加载节点. 首先,只加载顶层节点. 然后点击节点的展开图标来加载它的子节点. 本教程展示 ...