//请求入口

@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. Linux--用SecureCRT来上传和下载文件

    SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. Xmodem:这种古老的传输协议速度较慢,但由 ...

  2. 学习和理解C#的委托

    去年自学C#用的教程是入门级的<学通C#的24堂课>,教材里面也没有提到委托和事件,工作中也没怎么用到.后来一次在网上看了一些大牛的博客,读完之后感觉懵懵懂懂,似懂非懂,过了两三天之后,却 ...

  3. AS问题解决系列3—iCCP: Not recognizing known sRGB profile

    http://my.oschina.net/1pei/blog/479162 摘要 本文解决了Android Studio 1.2.2下编译期间出现的libpng warning: iCCP: Not ...

  4. iOS开发——开发技巧&LLDB详解

    开胃小菜--简单的断点调试 在xcode中打开一个app,在想要break的行号上单击,即可生成一个深色的箭头标识--断点.如下图,在viewDidLoad:中设置了断点. 运行app,等待...就可 ...

  5. android131 360 03 输入密码

    package com.itheima52.mobilesafe.activity; import android.app.Activity; import android.app.AlertDial ...

  6. javascript之css常用属性

    1. position : 属性值有absolute .fixed.relative absolute:生成绝对定位的元素,相对第一父元素进行定位: fixed :   生成绝对定位的元素,相对于浏览 ...

  7. 【转】C语言 字符数组与字符串

    原文:http://blog.csdn.net/metasearch/article/details/2856097 在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串.总结起来 ...

  8. VirtualBox中centos网络配置

    VirtualBox图形界面下有四种网络接入方式,它们分别是: 1.NAT 网络地址转换模式(NAT,Network Address Translation) 2.Bridged Adapter 桥接 ...

  9. 关于JFace中的对话框MessageDialog类等其它类型对话框

    对话框是软件系统中最常用到的界面,对话框无处不在,从界面结构来说,对话框主要是由主体的界面组件和底部窗体按钮组成. 之前的例子中已经频繁的使用到了MessageDialog.openInformati ...

  10. Matlab图像函数之pie

    一.pie pie用于描绘平面饼图. (1)pie(X) 利用向量X中的数据描绘饼图. 例如: X = [1, 1, 2, 2, 3, 4, 5]; pie(X) 得到 注意,X中的数据被看做频数,饼 ...