//请求入口

@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. win10中android studio中的terminal不能输入

    1 打开CMD窗口右击           2    3 重启电脑,你试试就知道了.  

  2. onethink 系统函数中 生成随机加密key

    <?php /** * 生成系统AUTH_KEY */ function build_auth_key(){ $chars = 'abcdefghijklmnopqrstuvwxyz012345 ...

  3. Java循环语句 for

    语法: 特点:相比 while 和 do...while 语句结构更加简洁易读 例如,输出 1000 遍"我爱慕课网",使用 for 的实现代码为: 需要留心的几个小细节: 1. ...

  4. Innodb 锁 (简单笔记)

    看过很多innodb锁的文章,已经明白的就不写了,简单做个笔记   Innodb 锁的兼容性: 1.意向锁和意向锁之间都是兼容的 2.X(排他锁)与任何锁都是不兼容的 3.排他意向锁 IX 于S锁是不 ...

  5. Android内存中的图片

    图片在内存中的大小 Android.graphics.Bitmap类里有一个内部类Bitmap.Config类,在Bitmap类里createBitmap(intwidth, int height, ...

  6. ubuntu下查看文件md5

    终端输入md5sum --help: md5sum --help用法:md5sum [选项]... [文件]...显示或检查 MD5(128-bit) 校验和.若没有文件选项,或者文件处为" ...

  7. ThinkPHP CURD方法盘点:field方法

    ThinkPHP的CURD操作中有很多非常实用的方法,从这篇开始,我们会为大家一一介绍. 首先为大家介绍下field方法的用法.field属于模型的连贯操作方法之一,主要目的是标识要返回或者操作的字段 ...

  8. linux终端或者虚拟机SecureCRT窗体拖动之后,会自己主动收到一个Ctrl+C的命令

    虚拟机中SecureCRT窗体每次鼠标划动和拖动窗体都会出现Crtl+C命令.导致远程Linux连接操作中断 经查找发现是本地机器里安装了相关软件快捷键导致.比方我的有道词典划词功能.取消划词就可以

  9. Ledongli

    Ledongli.rar

  10. 每天进步一点点——负载均衡之DNS域名解析

    转载请说明出处:http://blog.csdn.net/cywosp/article/details/38017027     在上一篇文章(http://blog.csdn.net/cywosp/ ...