//请求入口

@SuppressWarnings("serial")
@ParentPackage("default") //action请求
@Results( { @Result(name = BaseActionSupport.RELOAD, value = "workcalendarbb.action", type = ServletActionRedirectResult.class),
@Result(name = WorkCalendarBbAction.ARCHIVE_SORT_EXCEL, value = "stream", type = StreamResult.class, params = {
"contentType", "application/vnd.ms-excel", "inputName", "stream",
"contentDisposition", "attachment;filename=\"archiveFolder.xls\"",
"bufferSize", "1024" }) }) //导出需要
//实体类 ToaWorkCalendarBb
public class WorkCalendarBbAction extends BaseActionSupport<ToaWorkCalendarBb>{

//导出execel
private InputStream stream;
public static final String ARCHIVE_SORT_EXCEL = "archiveSortExcel";

/实体类
private ToaWorkCalendarBb model = new ToaWorkCalendarBb();
/**
* 导出execel表格
* @return
*/
public String importExcel(){
try {
ToaWorkCalendarBb model=new ToaWorkCalendarBb();
SimpleDateFormat st = new SimpleDateFormat(
"yyyy");

if(models.getCaltype1Id()!=null&&!"null".equals(models.getCaltype1Id())){
if(!"null".equals(models.getCaltype1Id())){
model.setCaltype1Id(models.getCaltype1Id());
}
}
//开始时间
if(models.getCalStartTime()!=null&&!"".equals(models.getCalStartTime())){
model.setCalStartTime(models.getCalStartTime());
}
//结束时间
if(models.getCalEndTime()!=null&&!"".equals(models.getCalEndTime())){
model.setCalEndTime(models.getCalEndTime());
}

// 导出Excel数据流.
stream = manager.searchExcel(model);
} catch (Exception e) {
e.printStackTrace();
}
return ARCHIVE_SORT_EXCEL;
}

}

具体方法

/***
* 导出execel表格
* @param model
* @return
* @throws DAOException
* @throws ParseException
*/
public InputStream searchExcel(ToaWorkCalendarBb model)throws DAOException, ParseException{
//拼写表头
HSSFWorkbook wb = new HSSFWorkbook();
HSSFRow row;
HSSFCell cell;
HSSFSheet sheet = wb.createSheet("sheet1");
row = sheet.createRow(0);
cell = row.createCell((short) 0);
int m=0;
//row = sheet.createRow(0);
HSSFCellStyle cellStyle= wb.createCellStyle();
HSSFFont font = wb.createFont();
sheet.setColumnWidth((short)m,(short)5000);
cell = row.createCell((short) m++);
/** 列名
* 横向
* **/
cell.setCellValue("填报人");
cellStyle= wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);

cell = row.createCell((short) m++);
sheet.setColumnWidth((short)m,(short)5000);
cell.setCellValue("填报处室");
cellStyle= wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);

sheet.setColumnWidth((short)m,(short)5000);
cell = row.createCell((short) m++);
cell.setCellValue("日志分类");
cellStyle= wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);

sheet.setColumnWidth((short)m,(short)5000);
cell = row.createCell((short) m++);
cell.setCellValue("日志条数");
cellStyle= wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);

sheet.setColumnWidth((short)m,(short)5000);
cell = row.createCell((short) m++);
cell.setCellValue("总时长");
cellStyle= wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);

sheet.setColumnWidth((short)m,(short)5000);
cell = row.createCell((short) m++);
cell.setCellValue("其中加班时间");
cellStyle= wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);

sheet.setColumnWidth((short)m,(short)5000);
cell = row.createCell((short) m++);
cell.setCellValue("其中出差时间");
cellStyle= wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);

sheet.setColumnWidth((short)m,(short)5000);
cell = row.createCell((short) m++);
cell.setCellValue("活动地点");
cellStyle= wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
cellStyle.setFont(font);
cell.setCellStyle(cellStyle);

/** 表头拼写完成
* 查询数据
* for循环放进去
* **/

//获取数据,不是拼写的数据,只是从数据库差所有
List<ToaWorkCalendarBb> list = search(model);//获取满足条件的ToaArchiveFolder对象
/**
* 遍历listtt
* 放进execel表格
*/
for (int i = 0; i < list.size()+0; ++i)
{
ToaWorkCalendarBb folder = list.get(i);
SimpleDateFormat st = new SimpleDateFormat(
"yyyy");
row = sheet.createRow(i + 1);

int j=0;
/**
* 字段对应的位置
* 横向 放值
*/
//填报人
cell = row.createCell((short) j++);
cell.setCellValue(folder.getCalUserName());
cellStyle= wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
cell.setCellStyle(cellStyle);

//填报处室
cell = row.createCell((short) j++);
cell.setCellValue(folder.getOrgName());
cellStyle= wb.createCellStyle();
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
cell.setCellStyle(cellStyle);

//日志分类
cell = row.createCell((short) j++);
// cell.setCellValue(st.format(folder.getBsstripEndTime()));
cell.setCellValue(folder.getCaltype1Idname());
cellStyle= wb.createCellStyle();
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平对齐
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
cell.setCellStyle(cellStyle);

//日志条数
cell = row.createCell((short) j++);
cell.setCellValue(folder.getJournalTotal());
cellStyle= wb.createCellStyle();
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
cell.setCellStyle(cellStyle);

//总时长
cell = row.createCell((short) j++);
cell.setCellValue(folder.getTimeTotal());
cellStyle= wb.createCellStyle();
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
cell.setCellStyle(cellStyle);

//其中加班时长
cell = row.createCell((short) j++);
cell.setCellValue(folder.getOverTime());
cellStyle= wb.createCellStyle();
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
cell.setCellStyle(cellStyle);

//其中出差时长
cell = row.createCell((short) j++);
cell.setCellValue(folder.getTravelTime());
cellStyle= wb.createCellStyle();
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
cell.setCellStyle(cellStyle);

//活动地点
cell = row.createCell((short) j++);
cell.setCellValue(folder.getActiveSite());
cellStyle= wb.createCellStyle();
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
cell.setCellStyle(cellStyle);
}
/** 放值结束 **/
ByteArrayOutputStream os = new ByteArrayOutputStream();
try{
wb.write(os);
}catch (IOException e){
e.printStackTrace();
}
byte[] content = os.toByteArray();
InputStream is = new ByteArrayInputStream(content);
return is;
}

导出Execel的更多相关文章

  1. Execel(导出新方法):

    #region 新方法 //var sbHtml = new StringBuilder(); //sbHtml.Append("<table border='1' cellspaci ...

  2. C# 之 EXCEL导入导出

    以下方式是本人总结的一些经验,肯定有很多种方法,在此先记下,留待以后补充... 希望朋友们一起来探讨相关想法,请在下方留言. A-1:EXCEL模板导出 非常简单,将EXCEL模板上传到项目中后,将其 ...

  3. Form_Form Builder Export导出为Excel(案例)

    2014-01-09 Created By BaoXinjian  

  4. NPOI对excel文件的导入导出

    现理解:将一个Excel文件(工作簿-IWorkBook)看做是一个你要操作的对象,每个工作簿包含多个工作表(ISheet)对象,每个工作表中又包含多个行对象(IRow),每行又包含多个单元格(ICe ...

  5. PL/SQL Developer 导出csv文件,用excel打开中文显示乱码

      用PL/SQL Developer的导出csv功能把sql语句的查询结果导出到一个csv文件.这个sql查询的结果里面有中文,最后用execel打开的时候发现中文全部是乱码. 方法 1 导出csv ...

  6. 【SqlServer】在SqlServer中把数据导入导出为Excel文件

    这里笔者介绍利用SqlServer数据库操作EXECEL文件. 1.将Excel表中的数据导入为SqlServer数据库 把Excel表中的数据导入为SqlServer数据库中的数据. 新建一个Exc ...

  7. [Mysql]——备份、还原、表的导入导出

    备份 1. mysqldump mysqldump备份生成的是个文本文件,可以打开了解查看. Methods-1 备份单个数据库或其中的几个表# mysqldump -u username -p'pa ...

  8. VB查询数据库之导出表格——机房收费总结(四)

    在机房收费系统中,有几个窗体需要导出数据到EXCEL表格中,如:学生上机记录查询窗体.学生充值记录查询窗体.收取金额查询窗体等. 前面的几篇总结,大家建议我不要把代码写的太详细,这样,不利于读者思考, ...

  9. datagridview数据导出到excel

    /// <summary> /// 导出Excel /// </summary> /// <param name="mydgv">控件 Data ...

随机推荐

  1. ObjC语法练习 冒泡排序、选择排序、矩阵相乘

    用OC实现的冒泡排序.选择排序.矩阵相乘,纯粹是用来练习语法. 冒泡排序,程序如下: void bubbleSort() { //初始化数组 NSMutableArray *array1 = [[NS ...

  2. eclipse jetty启动内存溢出

    一.eclipse jetty启动内存溢出, 异常信息 Exception in thread "ConfigClientWorker-Default" java.lang.Out ...

  3. 正则表达式30分钟入门教程<转载>

    来园子之前写的一篇正则表达式教程,部分翻译自codeproject的The 30 Minute Regex Tutorial. 由于评论里有过长的URL,所以本页排版比较混乱,推荐你到原处查看,看完了 ...

  4. Codeforces Round #261 (Div. 2) D 树状数组应用

    看着题意:[1,i]中等于a[i]的个数要大于[,jn]中等于a[j]的个数 且i<j,求有多少对这种(i,j)  ,i<j可是 i前面的合法个数 要大于j后面的 看起来非常像逆序数的样子 ...

  5. 重装系统后QQ聊天记录恢复方法

    重装系统后QQ聊天记录恢复方法 近日又一次安装了系统,又一次安装了腾讯的.TM,TM也是安装在之前的文件夹底下,可是聊天记录和之前的自己定义表情都不见了,看来没有自己主动恢复回来. 我这里另一个特殊的 ...

  6. android有点纠结的小问题

    1.点击一个listview的item,以popupwindow的形式展示一个菜单.popupwindow以动画的形式展现,可一直没有预期的效果 解决方案: popupWindow.setBackgr ...

  7. ios开发——实战OC篇&FMDB详解

    FMDB详解 前一篇文章中我们介绍的SQLite的使用,在iOS中原生的SQLite API在使用上相当不友好. 于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.Plausibl ...

  8. 自定义控件(视图)1期笔记01:View 和 ViewGroup

    1.View 和 ViewGroup 图解关系: 2. View 和 ViewGroup 关系和作用: (1) 关系: • 继承关系 • 组合关系 (2) 作用:      • View的作用: 提供 ...

  9. F5中源地址转换(AutoMap)模式下后端服务器获取客户端真正的IP地址

    F5中开启AutoMap,并传递X-Forwarded-For值 开启F5源地址转换"Auto Map" 方式一: 在http profile中开启X-Forwarded-For ...

  10. 关于Http协议的解析

    HTTP概述 HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器和万维网服务器之间互相通信的规则. HTTP就是一个通信规则,通信规则规定 ...