package khservlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import com.khdb.DBManager;

public class UploadOutputExcelServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/vnd.ms-excel");

response.setHeader("Content-Disposition",
"attachment; filename=\"kh.xls\"");

Connection conn = null;
try {

conn = DBManager.getDBManager().getConnection();
PreparedStatement pst = conn
.prepareStatement("select kid,kname,jmgh,zbkh,address,sname,aztime,lxr,phon,xtbh from khtype");
ResultSet rs = pst.executeQuery();

// 创建出 Excel文档
HSSFWorkbook students = new HSSFWorkbook();
HSSFSheet sheet = students.createSheet("客户信息资料");

HSSFRow row = sheet.createRow(0);
row.createCell(0).setCellValue("编号");
row.createCell(1).setCellValue("客户名称");
row.createCell(2).setCellValue("加密狗号");
row.createCell(3).setCellValue("正版卡号");
row.createCell(4).setCellValue("客户地址");
row.createCell(5).setCellValue("所在地区");
row.createCell(6).setCellValue("安装时间");
row.createCell(7).setCellValue("联系人");
row.createCell(8).setCellValue("电话");
row.createCell(9).setCellValue("XT800编号");
int index = 1;

while (rs.next()) {

row = sheet.createRow(index++);

row.createCell(0).setCellValue(rs.getString("kid"));
row.createCell(1).setCellValue(rs.getString("kname"));
row.createCell(2).setCellValue(rs.getString("jmgh"));
row.createCell(3).setCellValue(rs.getString("zbkh"));
row.createCell(4).setCellValue(rs.getString("address"));
row.createCell(5).setCellValue(rs.getString("sname"));
row.createCell(6).setCellValue(rs.getString("aztime"));
row.createCell(7).setCellValue(rs.getString("lxr"));
row.createCell(8).setCellValue(rs.getString("phon"));
row.createCell(9).setCellValue(rs.getString("xtbh"));

}
students.write(response.getOutputStream());

} catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (Exception e) {
}
}

}

}

package khservlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import com.khdb.DBManager;

public class UploadOutputExcelServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/vnd.ms-excel");

response.setHeader("Content-Disposition",
"attachment; filename=\"kh.xls\"");

Connection conn = null;
try {

conn = DBManager.getDBManager().getConnection();
PreparedStatement pst = conn
.prepareStatement("select kid,kname,jmgh,zbkh,address,sname,aztime,lxr,phon,xtbh from khtype");
ResultSet rs = pst.executeQuery();

// 创建出 Excel文档
HSSFWorkbook students = new HSSFWorkbook();
HSSFSheet sheet = students.createSheet("客户信息资料");

HSSFRow row = sheet.createRow(0);
row.createCell(0).setCellValue("编号");
row.createCell(1).setCellValue("客户名称");
row.createCell(2).setCellValue("加密狗号");
row.createCell(3).setCellValue("正版卡号");
row.createCell(4).setCellValue("客户地址");
row.createCell(5).setCellValue("所在地区");
row.createCell(6).setCellValue("安装时间");
row.createCell(7).setCellValue("联系人");
row.createCell(8).setCellValue("电话");
row.createCell(9).setCellValue("XT800编号");
int index = 1;

while (rs.next()) {

row = sheet.createRow(index++);

row.createCell(0).setCellValue(rs.getString("kid"));
row.createCell(1).setCellValue(rs.getString("kname"));
row.createCell(2).setCellValue(rs.getString("jmgh"));
row.createCell(3).setCellValue(rs.getString("zbkh"));
row.createCell(4).setCellValue(rs.getString("address"));
row.createCell(5).setCellValue(rs.getString("sname"));
row.createCell(6).setCellValue(rs.getString("aztime"));
row.createCell(7).setCellValue(rs.getString("lxr"));
row.createCell(8).setCellValue(rs.getString("phon"));
row.createCell(9).setCellValue(rs.getString("xtbh"));

}
students.write(response.getOutputStream());

} catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (Exception e) {
}
}

}

}

servlet导出Excel的更多相关文章

  1. 利用Servlet导出Excel

    -----因为Excel可以打开HTML文件,因此可以利用页面的Form表单把页面中的table内容提交给Servlet,然后后台把提交上来的table内容转换成文件流的形式,并以下载的形式转给客户端 ...

  2. jsp+servlet 导出Excel表格

    1.项目的目录结构 2.创建一个用户类,下面会通过查询数据库把数据封装成用户实例列表 package csh.entity; /** * @author 悦文 * @create 2018-10-24 ...

  3. [转]Java中导入、导出Excel

    原文地址:http://blog.csdn.net/jerehedu/article/details/45195359 一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样 ...

  4. 导出Excel通用工具类

    导出Excel的两种方法: 一,POI 导入poi包 poi-3.11-beta3-20141111.jar /** * */ package com.car.ots.mpckp.utils; imp ...

  5. JavaWeb动态导出Excel可弹出下载

    由于项目需求,需要将数据导出成Excel表格,并且可选择导出项,可下载.项目使用的Spring+Mybatis+SpringMVC框架,利用Apache POI导出Excel.POI具体使用请自行百度 ...

  6. POI导出excel的简单demo

    目前使用过两种导出excel的方式,一种是如题所示的使用POI的方式进行数据的导出,这种方式一般只有在处理比较多的数据或者说需要导出的excel表格中有图片之类的需要特殊处理的文件的时候使用:还有一种 ...

  7. Java 导出EXCEL

    1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开发人员则 ...

  8. jxl导出Excel文件

    一.java项目实现读取Excel文件和导出Excel文件 实现读取和导出Excel文件的代码: package servlet; import java.io.FileInputStream; im ...

  9. 公共POI导出Excel方法--java

    最早开始的时候做过一些数据Excel导出的功能,但是到后期每一次导出都需要写一些差不多类似的代码,稍微研究了一下写了个公共的导出方法. 这里用的是POI,然后写成了一个公共类,传入设置好格式的数据,就 ...

随机推荐

  1. C语言socket编程——linux环境

    先写一个服务器端的监听程序,功能室从客户端读取字符,接收到后告知客户端“I got your message: ”+收到的消息:server.c #include <stdio.h> #i ...

  2. THE R QGRAPH PACKAGE: USING R TO VISUALIZE COMPLEX RELATIONSHIPS AMONG VARIABLES IN A LARGE DATASET, PART ONE

    The R qgraph Package: Using R to Visualize Complex Relationships Among Variables in a Large Dataset, ...

  3. NetFramework各个版本的特性笔记

    公式记忆: .Net 2.0=CLR+BCL+C#(VB.Net)+Win Form+Web Form .Net 3.0=.Net 2.0+WCF+WPF+WF+WCS .Net 3.5=.Net 3 ...

  4. 全景智慧城市——VR全景,开启VR营销新时代

    全景是一种新兴的富媒体技术. 与视频.声音.图片等传统主流媒体最大的区别是"可操作,可交互". 全景给人以三维立体感觉的实景360°全方位图像,此图像最大的三个特点: 全方位:展示 ...

  5. Redis 小白指南(三)- 事务、过期、消息通知、管道和优化内存空间

    Redis 小白指南(三)- 事务.过期.消息通知.管道和优化内存空间 简介 <Redis 小白指南(一)- 简介.安装.GUI 和 C# 驱动介绍> 讲的是 Redis 的介绍,以及如何 ...

  6. Scheme 中的 pair 和 list 简述

    pair (cons 1 2) > (1 . 2) 系统返回(1 . 2).cons 操作给两个地址分配了内存空间,并把存放指向 1 的地址放在一个空间,把存放指向2的地址放在另一个空间.存放指 ...

  7. Java经典编程题50道之三十六

    有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数. public class Example36 {    public static void main(String[] a ...

  8. Dojo初探之4:dojo的event(鼠标/键盘)事件绑定操作(基于dojo1.11.2版本)

    前言: 上一章详解了dojo的dom/query操作,本章基于dom/query基础上进行事件绑定操作 dojo的事件 dojo的事件绑定操作分为鼠标和键盘两种进行详解 1.鼠标事件 我们沿用上一章中 ...

  9. Bootstrap 常用组件汇总

    Bootstrap 官方文档:http://www.bootcss.com/ Bootstrap Multiselect 多选下拉组件 官方文档:http://www.kuitao8.com/demo ...

  10. centOS下服务启动

    nginx应该在mongodb之后启动,也可以通过chkconfig <服务名> on将服务设置为开机自启动.具体命令如下 service mysql start service memc ...