jsp mysql excel-在jsp中使用jxl.jar包来将mysql搜索语句sql结果集导出到excel文件

问题描述

在jsp中使用jxl.jar包来将mysql搜索语句sql结果集导出到excel文件

整体构思是:连接数据库由DBManager.java,创建excel样式由Excel.java;最后在excel.jsp实现!但现在数据库数据并不能显示,求指教,我是java小白!
Excel.java代码

package com;
import java.io.*;
import java.sql.*;

import javax.sql.rowset.CachedRowSet;
import com.sun.rowset.CachedRowSetImpl;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;

public class Excel {
private static Connection conn=null;
private static PreparedStatement pstmt=null;
private static ResultSet rs=null;
private static CachedRowSet crs;
@SuppressWarnings("static-access")
public CachedRowSet GetResult(String sql)throws SQLException{
try {
conn=DBManager.getDBManager().connection;
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
crs=new CachedRowSetImpl();
crs.populate(rs);
System.out.println(null==crs);
return crs;
} catch (Exception e) {
// TODO: handle exception
return null;
}

}
public void getExcelResult(String sql, OutputStream os)
throws SQLException, IOException, WriteException {

// 首先获取结果集
// 这里获取RowSet的方法
CachedRowSet crs = this.GetResult(sql);

// 然后将结果集转化为Excel输出
// 初始化工作
System.out.println(null==crs);
WritableWorkbook wwb = null;

try {
wwb = Workbook.createWorkbook(os);

// 创建工作表
jxl.write.WritableSheet ws = wwb.createSheet("Sheet1", 0);

// 逐行添加数据
Label l1=new Label(0,0,"开始时间");
Label l2=new Label(1,0,"时间");
Label l3=new Label(2,0,"最高电压1");
Label l4=new Label(3,0,"电池号");
Label l5=new Label(4,0,"最高电压2");
Label l6=new Label(5,0,"电池号");
Label l7=new Label(6,0,"最高电压3");
Label l8=new Label(7,0,"电池号");

ws.addCell(l1);
ws.addCell(l2);
ws.addCell(l3);
ws.addCell(l4);
ws.addCell(l5);
ws.addCell(l6);
ws.addCell(l7);
ws.addCell(l8);

int i = 1;
while (crs.next()) {
 for (int j = 1; j <= crs.getMetaData().getColumnCount(); j++) {
  String s = crs.getString(j);
  Label labelC = new Label(j-1, i, s);
  ws.addCell(labelC);
 }
 i++;
}

} catch (Exception e) {
//logger.error("export excel error:" + e);
e.printStackTrace();
} finally {
if (wwb != null) {
wwb.write();
wwb.close();
}
}

}
}

DBManager.java代码
package com;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBManager {
private String driver="com.mysql.jdbc.Driver";
private String url="jdbc:mysql://localhost:3306/hwglxt?useUnicode=true&characterEncoding=gb2312";
private String username="root";
private String password="root";
public static Connection connection =null;
private static DBManager dbManager=null;
private DBManager()
{
try
{
Class.forName(driver);
connection=DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
System.out.println("1");
} catch (SQLException e) {
System.out.println("2");
}

}
public static DBManager getDBManager()
{
    if (null==dbManager) {
        dbManager=new DBManager();
    }
    return dbManager;
}

}

jsp页面文件
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.util.Excel" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

Insert title here

<% out.print(request.getParameter("sql"));
Excel excel=new Excel();
response.reset();
response.setContentType("application/vnd.ms-excel");

// String sql="select * from tbit_links ";

String sql=request.getParameter("sql");
excel.getExcelResult(sql,response.getOutputStream());
%>

时间: 2024-10-31 17:32:45

jsp mysql excel-在jsp中使用jxl.jar包来将mysql搜索语句sql结果集导出到excel文件的相关文章

源码-请教关于java中jxl jar包原理

问题描述 请教关于java中jxl jar包原理 最近使用jxl操作excel,对其中源码有些疑问,表示看不懂,请问哪位大神指导源码中的Java代码是怎么操作Excel的? 解决方案 用pio吧,jxl不支持2010+的office文件 解决方案二: 楼主看看这些java书籍对你有没有用 http://download.csdn.net/album/detail/1191

Java使用jxl.jar包写Excel文件的最适合列宽问题基本实现

以前用jxl.jar包,读写过Excel文件.也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽. 注意,这个只是基本可以实现,基本针对中文电子报表. 1.实现思路 (1)一般的中文汉字占位长度是英文字母的2倍,"方块字"很统一. (2)对于要写入Excel中的数据统计每一列的最大列宽,最后直接将这一列的列宽设置为这个列的最大值即可. 2.实现代码 import java.io.File; import java.util.

MyEclips的libraries中没有添加jar包的按钮

问题描述 MyEclips的libraries中没有添加jar包的按钮 刚启动的时候还可以有但是一两分钟后,就没有了,什么都不显示, 解决方案 右边这么多add 按钮看不见吗

web and jmf-WEB项目中导入JMF jar包部署到tomcat上出错

问题描述 WEB项目中导入JMF jar包部署到tomcat上出错 错误信息如下: 解决方案 Eclipse部署Java Web项目到Tomcat出错 解决方案二: 违规访问造成的.换一个低版本的包试试

急需!!Crystal Reports水晶报表中的一个jar包!!!

问题描述 需要jar包:webreporting.jarjar包中必须含JPEReportSourceFactory这个文件,路径:(com.crystaldecisions.reports.reportengineinterface.JPEReportSourceFactory;).jar包路径:X:ProgramFilesBusinessObjectsCommon4.0(2.5)javalib哪位好心人有就发我邮箱zhangxs1987@126.com,小弟在这谢谢大家了! 解决方案 解决方

Android Studio中如何打JAR包

 Android Studio中对于library类型的Moudle,默认打出来的是AAR包,  但有时候我们的SDK还需要共享给一些其他eclipse的项目使用,这样我们就需要输出JAR包,  可以通过在Moudle中的build.gradle加入task来实现   1 2 3 4 5 6 7 8 9 task makeJar(type: Copy) {     delete 'build/libs/mysdk.jar'     from('build/intermediates/bundle

程序中如何调用jar包

问题描述 我在程序中使用Processpro=null;Runtimert=Runtime.getRuntime();try{Stringcmd="java-Xmx800M-jarparser.jareng_sm6.gr<test.txt>result.txt";pro=rt.exec(cmd);}catch(IOExceptionex){ex.printStackTrace();}怎么都没有结果?应该如何写 解决方案 解决方案二:java-Xmx800M-jarparse

Applet Jar包签名和在页面中引用此Jar包,每次都报ClassNotFoundException

问题描述 <div class="iteye-blog-content-contain" style="font-size: 14px">因为公司需要,我不得不去学习使用Applet,代码已经写完,在MyEclipse里面run as Java Applet出来的页面也是正确的,到这里据说就要签名啥的,我按照资料签名成功,然后我写了个html,引用此Jar包具体内容如下,可是每次Applet小程序都报ClassNotFoundException,今天周五

本地jsp打成jar以后,每次修改都需要重启,maven更新jar包

问题描述 本地jsp打成jar以后,每次修改都需要重启,maven更新jar包 最近做项目遇到一个问题,领导要求把jsp也打包到jar里面,然后再web工程中引用. 这样就导致,我们在开发中遇到一个问题,每次修改了jsp都需要关闭服务器重新maven一下jar包. 想知道有没有办法解决,就像放在WEB-INF下一样,不用重启刷新页面就可以更新了. 解决方案 Eclipse下使用过Jrebel插件,支持文件修改的热部署 解决方案二: Maven 打jar包