将数据库中的信息导出到excel文件

内容

1、jsp页面

<form action="xsbf" method="post" style="margin-top: 100px;margin-left: 400px;">
    					学生信息备份:<input type="submit" value="备份" style="background-color: black; width:120px; margin-left:30px; height:30px; color: white;border: 0px;">
    				</form>

2、web.xml配置

<servlet>
    	<servlet-name>Sexport</servlet-name>
    	<servlet-class>toexcel.Sexport</servlet-class>
  	</servlet>
  	<servlet-mapping>
    	<servlet-name>Sexport</servlet-name>
    	<url-pattern>/xsbf</url-pattern>
  	</servlet-mapping>

3、servlet页面

try {
			//获得得到的结果集
			ResultSet rs = udb.execSQL("select * from student");
			//设置response的ContentType为Excel格式 
			response.setContentType("application/vnd.ms-excel");
			//attachment 作为附件下载   
			response.addHeader("Content-Disposition", "attachment; filename='student.xls'");
			OutputStream outputStream = response.getOutputStream();
			//创建一个可写的工作簿对象,直接写入输出流
			jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(outputStream);
			//创建excel工作表    参数分别为名称和插入位置这个从0开始
			jxl.write.WritableSheet ws = wwb.createSheet("Sheet1", 0);
			//表格样式
			//设置列默认的宽度
			ws.getSettings().setDefaultColumnWidth(20);
			//设置字体  为ARIAI   为11号字体
			WritableFont font = new WritableFont(WritableFont.ARIAL,11);
			//生成格式
			WritableCellFormat cellFormat = new WritableCellFormat(font);
			//设置文字居中对齐
			cellFormat.setAlignment(Alignment.CENTRE);
			//设置文字垂直居中
			cellFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
			int i = 0;
			int j = 0;
			//表格标题行
			//getMetaData获取字段数,实际上获取的是ResultMetaData对象,获取类型和属性
			//返回结果集的列数
			for(int k = 0; k < rs.getMetaData().getColumnCount(); k++){
				//文本填充    列数、行数、填充的内容   getColumnName下标从1开始 使用的格式为设置好的字体格式
				ws.addCell(new Label(k, 0, rs.getMetaData().getColumnName(k + 1), cellFormat));
			}
			//表格内容行
			while(rs.next()){
				for (int k = 0; k < rs.getMetaData().getColumnCount(); k++) {
				//列数、行数、内容和格式
					ws.addCell(new Label(k, j + i + 1, rs.getString(k + 1), cellFormat));
				}
				i++;
			}
			//写入工作簿
			wwb.write();
			//关闭
			wwb.close();
			//关闭结果集
			rs.close();
			//关闭数据库连接
			udb.closeSQLConnect();

4、数据库类

private final String dbDriver = "com.mysql.jdbc.Driver";
	private final String url = "jdbc:mysql://127.0.0.1:3306/work";
	private final String username = "root";
	private final String password = "lsm123";
	private Connection connection = null;
	public Udb() {
		try {
			//加载驱动
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			System.out.println("数据库驱动加载失败");
		}
		try {
			connection = DriverManager.getConnection(url, username, password);
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("数据库连接失败");
		}
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值