jsp页面端

<a href="/portal/server/importExec" title="Data Download">
<img src="${pageContext.request.contextPath}/style/images/excel6.jpg" width=20px height=20px style="padding-top:15px"/>
</a>

controller端处理

     @RequestMapping(value = "importExec", method = RequestMethod.GET)
@ResponseBody
public void importExec(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
String fname = "serverlist";
response.reset();// 清空输出流
response.setHeader("Content-disposition","attachment; filename=" + fname + ".xls");// 设定输出文件头
response.setContentType("application/msexcel");//EXCEL格式 Microsoft excel
//创建workbook
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFCellStyle style = workbook.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
HSSFFont f = workbook.createFont();
// f.setColor(HSSFColor.RED.index);
f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);//加粗
style.setFont(f);
style.setFillForegroundColor(HSSFColor.LIME.index);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); //创建sheet页
HSSFSheet sheet = workbook.createSheet("Server Info.");
//创建单元格
HSSFRow row = sheet.createRow(0);
HSSFCell c0 = row.createCell(0);
c0.setCellValue(new HSSFRichTextString("No"));
c0.setCellStyle(style); HSSFCell c1 = row.createCell(1);
c1.setCellValue(new HSSFRichTextString("IP"));
c1.setCellStyle(style); HSSFCell c2 = row.createCell(2);
c2.setCellValue(new HSSFRichTextString("Server Name"));
c2.setCellStyle(style); HSSFCell c3 = row.createCell(3);
c3.setCellValue(new HSSFRichTextString("Server Usage"));
c3.setCellStyle(style); HSSFCell c4 = row.createCell(4);
c4.setCellValue(new HSSFRichTextString("CPU"));
c4.setCellStyle(style); HSSFCell c5 = row.createCell(6);
c5.setCellValue(new HSSFRichTextString("Memory"));
c5.setCellStyle(style); HSSFCell c6 = row.createCell(8);
c6.setCellValue(new HSSFRichTextString("HDD"));
c6.setCellStyle(style); HSSFCell c7 = row.createCell(11);
c7.setCellValue(new HSSFRichTextString("OS Version"));
c7.setCellStyle(style); HSSFCell c8 = row.createCell(12);
c8.setCellValue(new HSSFRichTextString("Manager"));
c8.setCellStyle(style); HSSFRow row1 = sheet.createRow(1);
HSSFCell c9 = row1.createCell(4);
c9.setCellValue(new HSSFRichTextString("Count"));
c9.setCellStyle(style);
HSSFCell c10 = row1.createCell(5);
c10.setCellValue(new HSSFRichTextString("Core Num."));
c10.setCellStyle(style);
HSSFCell c11 = row1.createCell(6);
c11.setCellValue(new HSSFRichTextString("Count"));
c11.setCellStyle(style);
HSSFCell c12 = row1.createCell(7);
c12.setCellValue(new HSSFRichTextString("Size (GB)"));
c12.setCellStyle(style);
HSSFCell c13 = row1.createCell(8);
c13.setCellValue(new HSSFRichTextString("Count"));
c13.setCellStyle(style);
HSSFCell c14 = row1.createCell(9);
c14.setCellValue(new HSSFRichTextString("Type"));
c14.setCellStyle(style);
HSSFCell c15 = row1.createCell(10);
c15.setCellValue(new HSSFRichTextString("Size (GB)"));
c15.setCellStyle(style);
sheet.addMergedRegion(new CellRangeAddress(0, 1,(short)0, (short)0));
sheet.addMergedRegion(new CellRangeAddress(0, 1,(short)1, (short)1));
sheet.addMergedRegion(new CellRangeAddress(0, 1,(short)2, (short)2));
sheet.addMergedRegion(new CellRangeAddress(0, 1,(short)3, (short)3));
sheet.addMergedRegion(new CellRangeAddress(0, 0,(short)4, (short)5));
sheet.addMergedRegion(new CellRangeAddress(0, 0,(short)6, (short)7));
sheet.addMergedRegion(new CellRangeAddress(0, 0,(short)8, (short)10));
sheet.addMergedRegion(new CellRangeAddress(0, 1,(short)11, (short)11));
sheet.addMergedRegion(new CellRangeAddress(0, 1,(short)12, (short)12)); List<Server> serverList = serverService.findServerList("");
for(int i=0;i<serverList.size();i++){
row=sheet.createRow((int)i+2);
Server server = (Server)serverList.get(i);
row.createCell((short)0).setCellValue(new HSSFRichTextString(i+1+""));
row.createCell((short)1).setCellValue(new HSSFRichTextString(server.getIp()));
row.createCell((short)2).setCellValue(new HSSFRichTextString(server.getName()));
row.createCell((short)3).setCellValue(new HSSFRichTextString(server.getUseFor()));
row.createCell((short)4).setCellValue(new HSSFRichTextString(String.valueOf(server.getCpuCount())));
row.createCell((short)5).setCellValue(new HSSFRichTextString(server.getCpuNumber()+""));
row.createCell((short)6).setCellValue(new HSSFRichTextString(server.getMemCount()+""));
row.createCell((short)7).setCellValue(new HSSFRichTextString(server.getMemSize()));
row.createCell((short)8).setCellValue(new HSSFRichTextString(server.getHddCount()+""));
row.createCell((short)9).setCellValue(new HSSFRichTextString(server.getHddType()));
row.createCell((short)10).setCellValue(new HSSFRichTextString(server.getHddSize()));
row.createCell((short)11).setCellValue(new HSSFRichTextString(server.getOsVersion()));
row.createCell((short)12).setCellValue(new HSSFRichTextString(server.getManager()));
} try{
workbook.write(response.getOutputStream());
}
catch (Exception e){
e.printStackTrace();
}
}

action的处理方法:

jsp端

 	 <a href="DownDefectServlet?projectname=<%=request.getParameter("projectname")%>&item=<%=request.getParameter("item")%>"  title="Data Download">
<img src="${pageContext.request.contextPath}/images/excel6.jpg" width=20px height=20px style="padding-top:15px"/>
</a>

web.xml加入

<servlet>
<servlet-name>DownDefectServlet</servlet-name>
<servlet-class>net.nw.servlet.DownDefectServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DownDefectServlet</servlet-name>
<url-pattern>/DownDefectServlet</url-pattern>
</servlet-mapping>

后台servlet处理

	public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { //int currpage = Integer.parseInt(request.getParameter("currpage")==null?"1":request.getParameter("currpage"));
String projectname=request.getParameter("projectname");
String item=request.getParameter("item");
String where=null;
int total=0;
if ("".equals(item)){
where="where PROJECTNAME like '%"+projectname+"%' AND STATUS != 'PLM_Deleted' and STATUS != 'Not_Related' and PLMFLAG='Y'" ;
}
else { //Opened
where="where PROJECTNAME like '%"+projectname+"%' AND STATUS != 'PLM_Deleted' AND STATUS != 'Closed' AND STATUS != 'Resolved' and STATUS != 'Not_Related' and PLMFLAG='Y'" ;
} response = ServletActionContext.getResponse();
String fname = "defectlist";
response.reset();// 清空输出流
response.setHeader("Content-disposition","attachment; filename=" + fname + ".xls");// 设定输出文件头
response.setContentType("application/msexcel");//EXCEL格式 Microsoft excel
//创建workbook
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFCellStyle style = workbook.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
HSSFFont f = workbook.createFont();
f.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);//加粗
style.setFont(f);
style.setFillForegroundColor(HSSFColor.LIME.index);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); //创建sheet页
HSSFSheet sheet = workbook.createSheet("Defect List");
//创建单元格
HSSFRow row = sheet.createRow(0);
HSSFCell c0 = row.createCell(0);
c0.setCellValue(new HSSFRichTextString("ID"));
c0.setCellStyle(style);
HSSFCell c1 = row.createCell(1);
c1.setCellValue(new HSSFRichTextString("Headline"));
c1.setCellStyle(style);
HSSFCell c2 = row.createCell(2);
c2.setCellValue(new HSSFRichTextString("Priority"));
c2.setCellStyle(style);
HSSFCell c3 = row.createCell(3);
c3.setCellValue(new HSSFRichTextString("ModelCode"));
c3.setCellStyle(style);
HSSFCell c4 = row.createCell(4);
c4.setCellValue(new HSSFRichTextString("Sub Component Name"));
c4.setCellStyle(style);
HSSFCell c5 = row.createCell(5);
c5.setCellValue(new HSSFRichTextString("Plat. Dev."));
c5.setCellStyle(style);
HSSFCell c6 = row.createCell(6);
c6.setCellValue(new HSSFRichTextString("Prod. Dev."));
c6.setCellStyle(style);
HSSFCell c7 = row.createCell(7);
c7.setCellValue(new HSSFRichTextString("Defect Solved Ver."));
c7.setCellStyle(style);
HSSFCell c8 = row.createCell(8);
c8.setCellValue(new HSSFRichTextString("Requester"));
c8.setCellStyle(style);
HSSFCell c9 = row.createCell(9);
c9.setCellValue(new HSSFRichTextString("Status"));
c9.setCellStyle(style);
HSSFCell c10 = row.createCell(10);
c10.setCellValue(new HSSFRichTextString("State Owner"));
c10.setCellStyle(style); ResultSet rs=null; total=this.getResultCount_1(where);
rs = this.getResultSet_1(where);
int i = 0;
try {
while (rs.next()) {
row=sheet.createRow((int)++i);
row.createCell((short)0).setCellValue(new HSSFRichTextString(rs.getString("ID")));
row.createCell((short)1).setCellValue(new HSSFRichTextString(rs.getString("HEADLINE").replaceAll("<", " <").replaceAll(">", " >")));
row.createCell((short)2).setCellValue(new HSSFRichTextString(rs.getString("SERIOUSNESS").replaceAll("<", " <").replaceAll(">", " >")));
row.createCell((short)3).setCellValue(new HSSFRichTextString(rs.getString("MODELCODE").replaceAll("<", " <").replaceAll(">", " >")));
row.createCell((short)4).setCellValue(new HSSFRichTextString(rs.getString("SUBCOMPONENTNAME").replaceAll("<", " <").replaceAll(">", " >")));
row.createCell((short)5).setCellValue(new HSSFRichTextString(rs.getString("PLATFORMDEVELOPER").replaceAll("<", " <").replaceAll(">", " >")));
row.createCell((short)6).setCellValue(new HSSFRichTextString(rs.getString("PRODUCTDEVELOPER").replaceAll("<", " <").replaceAll(">", " >")));
row.createCell((short)7).setCellValue(new HSSFRichTextString(rs.getString("DEFECTSOLVEDVERSION").replaceAll("<", " <").replaceAll(">", " >")));
row.createCell((short)8).setCellValue(new HSSFRichTextString(rs.getString("REQUESTER").replaceAll("<", " <").replaceAll(">", " >")));
row.createCell((short)9).setCellValue(new HSSFRichTextString(rs.getString("STATUS").replaceAll("<", " <").replaceAll(">", " >")));
row.createCell((short)10).setCellValue(new HSSFRichTextString(rs.getString("STATEOWNER").replaceAll("<", " <").replaceAll(">", " >"))); }
rs.close();
}catch (SQLException e) {
System.out.println(e.getMessage());
} try {
workbook.write(response.getOutputStream());
}
catch (Exception e){
e.printStackTrace();
}
}

后台数据download成excel的方法(controller/action)的更多相关文章

  1. sqlserver将数据库的数据导成excel文档方法

    sqlserver将数据库的数据导成excel文档方法 最近公司需要下载uniport的数据跟之前的数据进行对比,所以避免不了需要将数据库的数据导出来,把SQLServer表中的数据导出为Excel文 ...

  2. Pl/sql 如何将oracle的表数据导出成excel文件?

    oracle将表数据导出成excel文件的方法 1)在SQL窗体上,查询需要导出的数据 --查询数据条件-- ; 结果视图 2)在查询结果的空白处,右键选择Copy to Excel 3) 查看导出e ...

  3. Echarts 数据视图 生成Excel的方法

    一.生成Excel,两大方向:1后台生成Excel 查询数据库,使用NOPI生成Excel.2前台js生成Excel三种方式1)jquery.table2excel.js --采用,优势:兼容IE和C ...

  4. Extjs — Grid数据导出成Excel

    最近因为项目问题,需要解决Extjs导出成Excel的问题. 下面简单描述这个问题解决的步骤如下: 1.先在js文件里写了一个button的handler事件,通过点击按钮,来实现调用ExportEx ...

  5. MySQL要导出成excel的方法

    MySQL 要导出成 excel 文件很简单,执行类似这样的命令:   select * from 某个表 into outfile  'd:/文件名.xls';   上述命令你在服务器上执行,就导在 ...

  6. php将数据库导出成excel的方法

    <?php $fname = $_FILES['MyFile']['name']; $do = copy($_FILES['MyFile']['tmp_name'],$fname); if ($ ...

  7. c# 数据导出成excel 方法总结 见标红部分

    public void ServiceOrderExport(string data) { StringBuilder sb = new StringBuilder(); Type entityTyp ...

  8. 使用SSM框架实现Sql数据导出成Excel表

    SSM框架实现SQL数据导出Excel 思路 首先在前端页面中添加一个导出功能的button,然后与后端controller进行交互. 接着在相应的controller中编写导出功能方法. 方法体: ...

  9. 有趣的Node爬虫,数据导出成Excel

    最近一直没更新了诶,因为学习Backbone好头痛,别问我为什么不继续AngularJs~因为2.0要出来了啊,妈蛋!好,言归正传,最近帮我的好基友扒数据,他说要一些股票债券的数据.我一听,那不就是要 ...

随机推荐

  1. gerrit的merge conflict

    找了很多资料,最后参考http://blog.csdn.net/w_jewelry/article/details/8123639 解决的. 先把gerrit的那几个commit abandon掉. ...

  2. 淘淘商城_day01_课堂笔记

    今日大纲 聊聊电商行业 电商行业发展 11.11 2015双11: 2016年: 预测:2017年的双11交易额将达到:1400亿 电商行业技术特点 淘淘商城简介 淘淘商城的前身 电商行业的概念 B2 ...

  3. zoj 2193 poj 2585 Window Pains

    拓扑排序. 深刻体会:ACM比赛的精髓之处不在于学了某个算法或数据结构,而在于知道这个知识点但不知道这个问题可以用这个知识去解决!一看题目,根本想不到是拓扑排序.T_T...... #include& ...

  4. apt-get dpkg lock 和 debconf 问题

    一: 在用sudo apt-get install 安装软件时,由于速度太慢,想换个软件源,直接关闭了终端,apt-get但进程没有结束,结果终端提示 E: Could not get lock /v ...

  5. hdu_5810_Balls and Boxes(打表推公式)

    题目链接:hdu_5810_Balls and Boxes 题意: 如题,让你求那个公式的期望 题解: 打表找规律,然后推公式.这项技能必须得学会 #include<cstdio> #in ...

  6. xcb编译

    sed -i "s/pthread-stubs//" configure && ./configure $XORG_CONFIG \ --enable-xinput ...

  7. FZU 2086 餐厅点餐

     好久不写博客了……得有快一个月了……看到大神们一篇篇博文 唉……差好多……这一个月 有蓝桥杯还有校赛……校赛签到题都没签完 实力铁牌……不过蓝桥杯一等奖 五月份帝都之行还挺令人期待……清明小长假之前 ...

  8. 去除VisualStudio中拼写错误检测的红色波浪线

    去除VisualStudio中拼写错误检测的红色波浪线 在Visual Assistant中将 Underline spelling errors in comments and strings us ...

  9. java的string.split()分割特殊字符时注意点

    [1]单个符号作为分隔符         String address="上海|上海市|闵行区|吴中路";      String[] splitAddress=address.s ...

  10. IE6下a标签失效(背景穿透)

    background:fixed url(about:blank);有时候做感应区域的时候在ie6下不给背景就会感应不到,比如说当鼠标移到图片的左半边部分,鼠标手势变成向左的箭 头,比如说有些时候a标 ...