您的位置:首页 > 其它

jxl导入数据到EXCEL

2012-06-29 09:19 513 查看
1.发送指令jsp页面

<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Alarm Report</title>
<script type="text/javascript">
function ajaxSubmit(){
window.open("/rmcs/alarmOutputToExcel.jsp",'', 'menubar=yes, location=yes, toolbar=yes, status=no, titlebar=no, resizable=yes, height=430px, width=650px, top='+(screen.height-430)/2+'px, left='+(screen.width-650)/2+'px');
}
</script>
</head>

<body>
<input type="button" onclick="ajaxSubmit()" value="button" />
</body>
</html>


2.请求后台处理页面

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="servlet.CASAlertReport"%>
<%
try {
CASAlertReport.outputExcel(request, response);
} catch (Exception e) {
e.printStackTrace();
}
%>


3.后台处理页面

package servlet;
/**数据库应用包*/
import com.db.Database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**servlet应用包*/
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**jxl应用包*/
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class CASAlertReport {

public static void outputExcel(HttpServletRequest request, HttpServletResponse response) throws Exception {

WritableWorkbook wwb = null;
try{
response.reset();
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("UTF-8");

/**设置导出报表的文件名称*/
response.setHeader("Content-disposition","attachment; filename=Alarm Report - By Device.xls");

WorkbookSettings workbookSettings = new WorkbookSettings();
workbookSettings.setEncoding("iso-8859-1");
wwb = Workbook.createWorkbook(response.getOutputStream(), workbookSettings);

wwb.createSheet("Alarm Report", 10);
WritableSheet wsSummary = wwb.getSheet("Alarm Report");
/**设置报表内容的字体样式*/
WritableFont wf = new WritableFont(WritableFont.ARIAL, 12, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLUE);
wsSummary.setRowView(1, 500);

// Report Title
WritableCellFormat wcf = new WritableCellFormat(wf);
wcf.setAlignment(Alignment.LEFT);
WritableCellFormat wcf_r = new WritableCellFormat(wf);
wcf_r.setAlignment(Alignment.RIGHT);

wsSummary.setColumnView(0, 30);
wsSummary.setColumnView(1, 30);
wsSummary.setColumnView(2, 30);
wsSummary.setColumnView(3, 30);

int rw = 7;
wsSummary.addCell(new Label(0, rw - 1, "Severity", wcf));
wsSummary.addCell(new Label(1, rw - 1, "Platform", wcf));
wsSummary.addCell(new Label(2, rw - 1, "No. of Acked Alarms", wcf_r));
wsSummary.addCell(new Label(3, rw - 1, "No. of Unacked Alarms", wcf_r));

rw++;
Database db = new Database();
String sql = "select * from vehicle";
ResultSet rs = db.getResultSet(sql);
while (rs.next()) {
wsSummary.addCell(new Label(0, rw - 1, rs.getString("license"), wcf));
wsSummary.addCell(new Label(1, rw - 1, rs.getString("IMEI"), wcf));
wsSummary.addCell(new Label(2, rw - 1, rs.getString("color"), wcf));
wsSummary.addCell(new Label(3, rw - 1, rs.getString("brand"), wcf));
rw ++;
}

wwb.write();
wwb.close();
} catch(Exception e){
e.printStackTrace();
return;
}
}
}


编辑完以上代码,修改一下后台的数据库连接就可以使用啦,很方便很强大的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: