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. dd,实现系统备份

    一.dd的使用 dd命令的解释dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾则乘以相应的数字:b=512:c=1:k=1024:w=2 参数: ...

  2. mysql服务器辅助选项

    查看控制台命令行前缀 : echo $PS1 ,例如输出 '[\u@\h \w]#     其中,\u是用户名,\h是主机名称: hostname -s 可以查看当前主机名,  hostname 'z ...

  3. How to Tune Java Garbage Collection--reference

    reference:http://architects.dzone.com/articles/how-tune-java-garbage The Performance Zone is support ...

  4. Helpers\Assets

    Helpers\Assets The assets helper is for loading CSS and JS files rather than writing out the full sc ...

  5. 学习jQuery后的部分总结

    1.remove和empty <div id="div1"> <ul id="ul1"> <li>嘿嘿</li> ...

  6. ios存储 plist 偏好设置 自定义对象存储

    1,plist Plist注意:不能存储自定义对象 Plist:数组和字典,  如何判断一个对象能不能使用Plist,就看下有没有writeToFile 获取应用的文件夹(应用沙盒) NSString ...

  7. git 常用命令 创建查看删除分支,创建查看删除tag等

      1. git 文档 https://github.com/progit/progit/blob/master/zh/02-git-basics/01-chapter2.markdown https ...

  8. 计算机程序和C++语言简介

    C++程序设计 第一章 计算机程序和C++语言简介 1.计算机是一台能够存储并处理数据的电子设备,包含硬件和软件两部分. 2.计算机硬件由: 1)中央处理单元(Central Processing U ...

  9. css动画——transition和animation

    http://www.ruanyifeng.com/blog/2014/02/css_transition_and_animation.html 第一部分:CSS Transition 在CSS 3引 ...

  10. JAXB - Unmarshalling

    A simple approach for unmarshalling an XML document consists of the creation of a JAXB context and t ...