package com.lbc.excel.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.lbc.entity.EquipmentLib;
import com.lbc.entity.OaUsers;
import com.lbc.service.AssetServiceDao;
import com.lbc.service.AssetServiceDaoImpl; import youngPackage.db.YoungRepository; /**
* Servlet implementation class ExportExcelServlet
*/
public class ExportExcelServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public ExportExcelServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("---------------------------------ExportExcelServlet----------------------------------");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
YoungRepository youngdb = (YoungRepository)request.getSession().getAttribute("oa_db");
OaUsers user = (OaUsers)request.getSession().getAttribute("oa_user");
String eaPer = (String)request.getSession().getAttribute("currentUserEaPerGrade");
if(youngdb == null){
youngdb = new YoungRepository();
}
AssetServiceDao asd = new AssetServiceDaoImpl(youngdb);
List<EquipmentLib> list = new ArrayList<EquipmentLib>();
if("EA1004".equals(eaPer)){
list = asd.getElByUsernameOrDepartmentOrManager(user.getUsername(),"","ALL","1");
}else if("EA1002".equals(eaPer)){
list = asd.getElByUsernameOrDepartmentOrManager("",user.getDepartment(),"","1");
} String fileName = "Excel-" + System.currentTimeMillis() + ".xls";//设置导出的文件名称
StringBuffer sb = new StringBuffer(this.gettable(list));//将表格信息放入内存
String contentType = "application/vnd.ms-excel";//定义导出文件的格式的字符串
String recommendedName = new String(fileName.getBytes(),"iso_8859_1");//设置文件名称的编码格式
response.setContentType(contentType);//设置导出文件格式
response.setHeader("Content-Disposition", "attachment; filename=" + recommendedName );//
response.resetBuffer();
//利用输出输入流导出文件
ServletOutputStream sos = response.getOutputStream();
sos.write(sb.toString().getBytes());
sos.flush();
sos.close();
}
private String gettable(List<EquipmentLib> list ){
StringBuffer table = new StringBuffer();
if(list != null && list.size() > 0){
table.append("<table border='1'><tbody><tr style='height: 35px;background-color:#fff1cc;'><th>序号</th><th>资产类别</th><th>资产名称</th><th>资产数量</th>");
table.append("<th>所在部门</th><th>使用人</th><th>状态</th><th>购置日期</th><th>开始使用日期</th>");
table.append("<th>使用年限</th><th>原值</th><th>品牌</th><th>规格型号</th><th>备注</th></tr>");
String temp = "";
for(int i = 0 ; i < list.size() ; i++){
EquipmentLib el = list.get(i);
if((i+1)%2 == 0){
table.append("<tr style='height: 35px;' bgcolor='#EDEDED'>");
}else{
table.append("<tr style='height: 35px;'>");
}
table.append("<td align='center'>"+(i+1)+"</td>");
table.append("<td align='center'>"+el.getFamily()+"</td>");
table.append("<td align='center'>"+el.getName()+"</td>");
table.append("<td align='center'>"+el.getAmount()+"</td>");
table.append("<td align='center' style='color:red;'>"+el.getDepartment()+"</td>");
table.append("<td align='center'>"+el.getCurrentUserName()+"</td>");
if("2".equals(el.getStatus())){
temp = "资产转移中";
}else if("4".equals(el.getStatus())){
temp = "报废审核中";
}else {
temp = "正常使用";
}
table.append("<td align='center'>"+temp+"</td>");
table.append("<td align='center'>"+el.getPurchaseDate()+"</td>");
table.append("<td align='center'>"+el.getStartUseDate()+"</td>");
table.append("<td align='center'>"+el.getUseLife()+"</td>");
table.append("<td align='center'>"+el.getValue()+"</td>");
if(el.getBrand() == null ){
table.append("<td align='center'></td>");
}else{
table.append("<td align='center'>"+el.getBrand()+"</td>");
} if(el.getSpecifications() == null ){
table.append("<td align='center'></td>");
}else{
table.append("<td align='center'>"+el.getSpecifications()+"</td>");
} if(el.getRemark() == null ){
table.append("<td align='center'></td>");
}else{
table.append("<td align='center'>"+el.getRemark()+"</td>");
} }
table.append("</tr></tbody></table>");
}
return table.toString();
}
}

  

java Servlet导出数据到Excel文件的更多相关文章

  1. java代码导出数据到Excel、js导出数据到Excel(三)

     jsp内容忽略,仅写个出发按钮:          <button style="width: 100px" onclick="expertExcel()&quo ...

  2. 使用PHP导入Excel和导出数据为Excel文件

    有时需要将Excel表格的数据导入到mysql数据库中,我们使用PHP的一个开源项目PHP-ExcelReader可以轻松实现Excel的导入.另外将mysql数据导出为Excel与本站上篇文章中导出 ...

  3. 从GridView中直接导出数据到Excel文件 处理导出乱码 类型“GridView”的控件“XXXX”必须放在具有 runat=server 的窗体标记内。”的异常

    导出到Excel方法: <span style="color: rgb(0, 0, 255);">public</span> <span style= ...

  4. CodeIgniterCodeigniter+PHPExcel导出数据到Excel文件

    解压压缩包里的Classes文件夹中的内容到application\libraries\目录下,目录结构如下:--application\libraries\PHPExcel.php--applica ...

  5. PHP导出MySQL数据到Excel文件

    PHP导出MySQL数据到Excel文件 转载 常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存 ...

  6. 1.ASP.NET MVC使用EPPlus,导出数据到Excel中

    好久没写博客了,今天特地来更新一下,今天我们要学习的是如何导出数据到Excel文件中,这里我使用的是免费开源的Epplus组件. 源代码下载:https://github.com/caofangshe ...

  7. 微软BI 之SSIS 系列 - 导出数据到 Excel 2013 的实现

    开篇介绍 碰到有几个朋友问到这个问题,比较共性,就特意写了这篇小文章说明一下如何实现在 SSIS 中导出数据到 Office Excel 2013 中.通常情况下 2013 以前的版本大多没有问题,但 ...

  8. Java操作Jxl实现导出数据生成Excel表格数据文件

    实现:前台用的框架是Easyui+Bootstrap结合使用,需要引入相应的Js.Css文件.页面:Jsp.拦截请求:Servlet.逻辑处理:ClassBean.数据库:SQLserver. 注意: ...

  9. java 写入数据到Excel文件中_Demo

    =======第一版:基本功能实现======= import com.google.common.collect.Maps; import org.apache.log4j.Logger; impo ...

随机推荐

  1. java_jdbc_可滚动结果集与分页

    public static void create2(int i) { Connection conn = null; Statement st = null; ResultSet rs = null ...

  2. GitHub 建立远程仓库

    终端所有信息: Last login: Fri Aug 14 08:58:01 on console wuxiaoyuan:~ lan$ ls -al ~/.ssh ls: /Users/lan/.s ...

  3. Unicode 编码解码

    1. Regex.Unescape(str);返回Unicode解码,非Unicode直接返回 /// <summary>      /// 2.转为Unicode编码      /// ...

  4. 关于Eclipse插件开发(四)-------给视图加下拉菜单和按钮和加入编辑器.

    本例将给视图加入下拉菜单和按钮,同时再为列表添加一个右键菜单. 创建ActionGroup类 加入菜单和按钮的方法与SWT和JFace组件的一样,先创建一个ActionGroup代码如下: MyAct ...

  5. 【区间覆盖问题】uva 10020 - Minimal coverage

    可以说是区间覆盖问题的例题... Note: 区间包含+排序扫描: 要求覆盖区间[s, t]; 1.把各区间按照Left从小到大排序,如果区间1的起点大于s,则无解(因为其他区间的左起点更大):否则选 ...

  6. C# 接口的隐式与显示实现【转】

    以前在用到接口时,从来没注意到接口分为隐式实现与显示实现.昨天在浏览博客时看到相关内容,现在根据自己的理解记录一下,方便日后碰到的时候温习温习.通俗的来讲,“显示接口实现”就是使用接口名称作为方法名的 ...

  7. 【JAVA】接口(一)

    一.接口的概念 接口是一种更彻底的抽象.接口是从多个相似类中抽象出来的规范,接口不提供任何实现,接口体现的是规范和实现分离的设计哲学. 二.接口的定义 接口定义不再使用class关键字,而是使用int ...

  8. 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记1 IOS8概述

    首先感谢网易公开课和SwiftV课堂的朋友们辛苦翻译,这个系列是我学习斯坦福IOS8公开课的个人心得体会和笔记,希望能给大家带来启发. 首先我们要知道IOS系统中的结构情况,从贴近硬件的底层到贴近用户 ...

  9. 12天学好C语言——记录我的C语言学习之路(Day 12)

    12天学好C语言--记录我的C语言学习之路 Day 12: 进入最后一天的学习,用这样一个程序来综合考量指针和字符串的关系,写完这个程序,你对字符串和指针的理解应该就不错了. //输入一个字符串,内有 ...

  10. 12天学好C语言——记录我的C语言学习之路(Day 2)

    12天学好C语言--记录我的C语言学习之路 Day 2: 我建议大家每一天学习之前都仅凭记忆去敲前一天敲过的最后一个程序,或者敲前一天你认为最难最长的一个程序,如果一晚上的睡眠之后不看书还能敲的出来, ...