热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据库表导出成Excel工具类

packagecom.chinasofti.articlesys.util;importjava.io.FileOutputStream;importjava.i
package com.chinasofti.articlesys.util;


import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFHeader;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.struts2.ServletActionContext;

import com.chinasofti.articlesys.bean.ArchiveBean;
import com.chinasofti.articlesys.bean.ArchiveBean;
import com.chinasofti.articlesys.service.ArchiveTypeService;




public class ExportUtilForQuery {


public static void export(List list)throws Exception
{
if(list==null){
return;
}


/*HSSFWorkbook wb = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet("档案表");
sheet.setDefaultColumnWidth(20);
sheet.setDefaultRowHeight((short)15);
// 创建字体对象
HSSFCellStyle style = wb.createCellStyle();
HSSFFont fOnt= wb.createFont();
font.setFontHeightInPoints((short)12);
// font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setBold(true);

style.setAlignment(HorizontalAlignment.CENTER); // 居中
style.setFont(font);
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = sheet.createRow(0);

HSSFCell cell = row.createCell(0);
cell.setCellValue("档案编号");
cell.setCellStyle(style);
cell=row.createCell(1);
cell.setCellValue("档案标题");
cell.setCellStyle(style);
cell=row.createCell(2);
cell.setCellValue("档案内容");
cell.setCellStyle(style);
cell=row.createCell(3);
cell.setCellValue("创建人");
cell.setCellStyle(style);

for (int i = 0; i {
row = sheet.createRow(i+1);
ArchiveBean bean =list.get(i);
// 第四步,创建单元格,并设置值
row.createCell(0).setCellValue(bean.getArchiveNo());
row.createCell(1).setCellValue(bean.getTitle());
row.createCell(2).setCellValue(bean.getContent());
row.createCell(3).setCellValue(bean.getCreater().getName());
} */

String []tableHeader={"档案编号","档案标题","档案内容","创建人"};
/*
*下面的都可以拷贝不用编写
*/
short cellNumber=(short)tableHeader.length;//表的列数
HSSFWorkbook workbook = new HSSFWorkbook(); //创建一个excel
HSSFCell cell = null; //Excel的列
HSSFRow row = null; //Excel的行
HSSFCellStyle style = workbook.createCellStyle(); //设置表头的类型
// style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style.setAlignment(HorizontalAlignment.CENTER);
HSSFCellStyle style1 = workbook.createCellStyle(); //设置数据类型
// style1.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style1.setAlignment(HorizontalAlignment.CENTER);
HSSFFont fOnt= workbook.createFont(); //设置字体
HSSFSheet sheet = workbook.createSheet("sheet1"); //创建一个sheet
HSSFHeader header = sheet.getHeader();//设置sheet的头
try { /**
*根据是否取出数据,设置header信息
*
*/
if(list.size() <1 ){
header.setCenter("查无资料");
}else{
header.setCenter("档案表");
row = sheet.createRow(0);
row.setHeight((short)400);
for(int k = 0;k cell = row.createCell(k);//创建第0行第k列
cell.setCellValue(tableHeader[k]);//设置第0行第k列的值
sheet.setColumnWidth(k,8000);//设置列的宽度
font.setColor(HSSFFont.COLOR_NORMAL); // 设置单元格字体的颜色.
font.setFontHeight((short)350); //设置单元字体高度
style1.setFont(font);//设置字体风格
cell.setCellStyle(style1);
}
/*
* // 给excel填充数据这里需要编写
*
*/
for(int i = 0 ;i ArchiveBean beanType = list.get(i);//获取sign对象
row = sheet.createRow((short) (i + 1));//创建第i+1行
row.setHeight((short)400);//设置行高

if(beanType.getArchiveNo()!= null){
cell = row.createCell(0);//创建第i+1行第0列
cell.setCellValue(beanType.getArchiveNo());//设置第i+1行第0列的值
cell.setCellStyle(style);//设置风格
}
if(beanType.getTitle() != null){
cell = row.createCell(1); //创建第i+1行第1列

cell.setCellValue(beanType.getTitle());//设置第i+1行第1列的值

cell.setCellStyle(style); //设置风格
}
//由于下面的和上面的基本相同,就不加注释了
if(beanType.getContent() != null){
cell = row.createCell(2);
cell.setCellValue(beanType.getContent());
cell.setCellStyle(style);
}
if(beanType.getCreater()!= null){
cell = row.createCell(3);
cell.setCellValue(""+beanType.getCreater());
cell.setCellStyle(style);
}
/*if(sign.getSclass() != null){
cell = row.createCell(4);
cell.setCellValue(sign.getSclass());
cell.setCellStyle(style);
}
if(sign.getMdate()!= null){
cell = row.createCell(5);
cell.setCellValue(sign.getMdate());
cell.setCellStyle(style);
}*/

}

}

} catch (Exception e) {
e.printStackTrace();
}


try
{ HttpServletResponse respOnse=null;
OutputStream out = null;//创建一个输出流对象
try {
respOnse= ServletActionContext.getResponse();//初始化HttpServletResponse对象
out = response.getOutputStream();//
response.setHeader("Content-disposition","attachment; filename="+"SearchResult"+".xls");//filename是下载的xls的名,建议最好用英文
response.setContentType("application/msexcel;charset=UTF-8");//设置类型
response.setHeader("Pragma","No-cache");//设置头
response.setHeader("Cache-Control","no-cache");//设置头
response.setDateHeader("Expires", 0);//设置日期头
workbook.write(out);
out.flush();

} catch (IOException e) {
e.printStackTrace();
}finally{
try{

if(out!=null){
out.close();
}

}catch(IOException e){
e.printStackTrace();
}

}

}
catch (Exception e)
{
e.printStackTrace();

}




// return null;
}
}




推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • importjava.util.ArrayList;publicclassPageIndex{privateintpageSize;每页要显示的行privateintpageNum ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
author-avatar
happy柒月卍520
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有