java數據生成excel_Java 數據庫數據生成Excel

采用jxl.jar生成Excel

項目開發注意事項: 1:導入從網上下載的jar包:

mail.jar 和 activation.jar

2:刪掉C:\Program Files\MyEclipse\Common\plugins\com.genuitec.eclipse.j2eedt.core_10.0.0.me201110301321\data\libraryset\EE_5 下 ?javaee.jar中的javax-->activation.jar和mail.jar (兩個Jar包)。不刪除會報錯,原因是是jar包版本不統一

3.導入jxl.jar包

/*

* @(#)DownloadServlet.java Time: 2013-2-28

*

* Copyright 2013 xuedou.com All rights reserved.

*/

package xuedou.skymoni.servlet;

import java.io.IOException;

import java.io.OutputStream;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import common.Logger;

import jxl.Workbook;

import jxl.format.UnderlineStyle;

import jxl.write.Label;

import jxl.write.WritableCellFormat;

import jxl.write.WritableFont;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import jxl.write.WriteException;

import xuedou.skymoni.bean.Exam;

import xuedou.skymoni.impl.ExamImpl;

import xuedou.skymoni.service.ExamService;

/**

*

類說明

*功能描述:

* 下載Excel

* @author jinmingming jinmingming@xuedou.com

* @version 1.0, 2013-2-28

*/

public class DownloadServlet extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

ExamService examService = new ExamImpl();

OutputStream os=null;

try

{

os = response.getOutputStream();

}

catch (IOException e1)

{

Logger.getLogger(DownloadServlet.class).error("獲取response輸出流出錯");

}

response.reset();

response.setContentType("application/msexcel");

String fileName="市外模擬考信息數據.xls";

response.setHeader("Content-Disposition", "attachment;"+ " filename="+ new String(fileName.getBytes(), "ISO-8859-1"));

WritableWorkbook wwb=null;

WritableSheet ws=null;

try

{

wwb = Workbook.createWorkbook(os);

ws=wwb.createSheet("市外模擬考信息數據",0);

ws.getSettings().setDefaultColumnWidth(15);

//創建表頭

WritableFont wfc = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);

WritableCellFormat wcfFC = new WritableCellFormat(wfc);

Label topid = new Label(0,0,"編號",wcfFC);

Label topsname = new Label(1,0,"姓名",wcfFC);

Label topschool = new Label(2,0,"學校",wcfFC);

Label toptel = new Label(3,0,"手機",wcfFC);

Label topissky = new Label(4,0,"是否在藍天就讀",wcfFC);

Label topexamschool = new Label(5,0,"考試校區",wcfFC);

Label topexamtime = new Label(6,0,"考試時段",wcfFC);

Label topexamnum = new Label(7,0,"考試場次",wcfFC);

Label topticknum = new Label(8,0,"準考證號",wcfFC);

ws.addCell(topid);

ws.addCell(topsname);

ws.addCell(topschool);

ws.addCell(toptel);

ws.addCell(topissky);

ws.addCell(topexamschool);

ws.addCell(topexamtime);

ws.addCell(topexamnum);

ws.addCell(topticknum);

Label id = null;

Label sname = null;

Label school = null;

Label tel = null;

Label issky = null;

Label examschool = null;

Label examtime = null;

Label examnum = null;

Label ticknum = null;

List list = examService.allExam(); //得到List結果集

int listsize = list.size();

for (int i = 1; i <= listsize; i++){ //遍歷封裝

Exam exam = list.get(i-1);

id = new Label(0,i,Integer.toString(i));

sname = new Label(1,i,exam.getSname());

school = new Label(2,i,exam.getSchool());

tel = new Label(3,i,exam.getTel());

issky = new Label(4,i,exam.getIssky());

examschool = new Label(5,i,exam.getExamschool());

examtime = new Label(6,i,exam.getExamtime());

examnum = new Label(7,i,exam.getExamnum());

ticknum = new Label(8,i,exam.getTicknum());

ws.addCell(id);

ws.addCell(sname);

ws.addCell(school);

ws.addCell(tel);

ws.addCell(issky);

ws.addCell(examschool);

ws.addCell(examtime);

ws.addCell(examnum);

ws.addCell(ticknum);

}

}

catch (Exception e)

{

Logger.getLogger(DownloadServlet.class).error("輸出Excel失敗");

}

finally

{

try

{

wwb.write();

wwb.close();

os.close();

}

catch (WriteException e)

{

Logger.getLogger(DownloadServlet.class).error("關閉WritableWorkbook出錯");

}

catch (IOException e)

{

Logger.getLogger(DownloadServlet.class).error("關閉WritableWorkbook出錯");

}

}

}

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response);

}

}

JSP頁面:

點擊下載市外模擬考信息數據

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257536.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257536.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257536.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

兩張神圖介紹python3和 2.x與 3.x 的區別

有感與第一張圖, 做了第二張圖.轉載于:https://www.cnblogs.com/Vito2008/p/5280393.html

Java-jdbc連接數據庫

1、Oracle8/8i/9i數據庫&#xff08;thin模式&#xff09; Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url"jdbc:oracle:thin:localhost:1521:orcl"; //orcl為數據庫的SID String user"test"; String…

abstract class 和 interface 區別

本文出自與&#xff1a;heipai:tsg666含有 abstract 修飾符的 class 即為抽象類&#xff0c;abstract 類不能創建的實例對象。含有 abstract 方法的類必須定義為 abstract class&#xff0c;abstract class 類中的方法不必是抽象的。abstract class 類中定義抽象方法必須在具體…

Factorial Trailing Zeroes

https://leetcode.com/problems/factorial-trailing-zeroes/ Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in logarithmic time complexity. 解題思路&#xff1a; 再次遇見最討厭的Math題。 開始的思路&#xff0c;結尾的…

java設計模式懶漢_java設計模式-懶漢設計模式

一、理論類加載時&#xff0c;不進行實例化&#xff0c;調用時才進行類的實例化。二、代碼實現public class LazyManPattern {//1.構造方法私有化private LazyManPattern(){}//2.類加載時&#xff0c;不進行實例化private static LazyManPattern lazyManPattern;//3.創建實例化…

多視圖參數傳遞

在iOS開發中常用的參數傳遞有以下幾種方法&#xff1a; 采用代理模式 采用iOS消息機制 通過NSDefault存儲&#xff08;或者文件、數據庫存儲等&#xff09; 通過AppDelegate定義全局變量&#xff08;或者使用UIApplication、定義一個單例類等&#xff09; 通過控制器屬性傳遞轉…

百年難得一見!阿里園區驚現雙月爭輝奇觀!

9月3日晚杭州阿里園區上空突然驚現“雙月爭輝”奇觀&#xff0c;引發路人、員工爭相拍照留念狂潮。記者隨后深入園區探訪&#xff0c;近距離觀察“雙月奇觀”。當晚&#xff0c;熱心觀眾王先生提供線索。王先生路過杭州阿里巴巴園區時&#xff0c;聽到有人呼喊&#xff1a;“快…

Math源碼java_深入學習java源碼之Math.sin()與 Math.sqrt()

深入學習java源碼之Math.sin()與 Math.sqrt()native關鍵字凡是一種語言&#xff0c;都希望是純。比如解決某一個方案都喜歡就單單這個語言來寫即可。Java平臺有個用戶和本地C代碼進行互操作的API&#xff0c;稱為JNInative關鍵字告訴編譯器(其實是JVM)調用的是該方法在外部定義…

路由控制器Express的路由控制方法

MVC中的C控制器 express的路由控制方法&#xff1a;1.創建路由規則 var express require(‘express’); var router express.Router(); /* get home page.*/ router.get(/, function(req,res){ res.render(index, title:express); }); module.exports router; 服務器在開始…

URAL 1146 Maximum Sum(最大子矩陣的和 DP)

Maximum Sum 大意&#xff1a;給你一個n*n的矩陣&#xff0c;求最大的子矩陣的和是多少。 思路&#xff1a;最開始我想的是預處理矩陣&#xff0c;遍歷子矩陣的端點&#xff0c;發現復雜度是O(n^4)。就不知道該怎么辦了。問了一下&#xff0c;是壓縮矩陣&#xff0c;轉換成最大…

基于 axios 的 Vue 項目 http 請求優化

對于需要大量使用 http 請求的項目&#xff0c;我們通常會選擇對 http 請求的方法進行二次封裝&#xff0c;以便增加統一的攔截器&#xff0c;或者統一處理阻止重復提交之類的邏輯。Vue.js 的項目中我們選擇使用了 axios 這樣一個 http 庫&#xff0c;下面也就簡述下基于 axios…

Spring 事務配置5種方式

Spring配置文件中關于事務配置總是由三個組成部分&#xff0c;分別是DataSource、TransactionManager和代理機制這三部分&#xff0c;無論哪種配置方式&#xff0c;一般變化的只是代理機制這部分。 DataSource、TransactionManager這兩部分只是會根據數據訪問方式有所變化&…

java中主線程首先執行_java經典面試題:子線程先運行30次主線程,主線程40次,如此循環50次?...

最近偶遇這道題&#xff0c;網上相似的題都是循環次數不一樣。然而我百度搜到的論壇或者博客感覺都不太對&#xff0c;運行有穿插。請給出正確結果。我們假使所有人都引入了業務對象。并且我有疑問&#xff1f;感覺題目本意不是new Thread()放在前面。網上有人做法是用標志位防…

[翻譯]Feedback on the Go Challenge solutions

第一次Go Challenge比賽&#xff0c;中國區只有3人參賽。 賽后收到郵件&#xff0c;是一個審閱者的反饋&#xff0c;“Feedback on the Go Challenge solutions”&#xff0c;摘錄如下&#xff1a; 保持簡單粗暴 一個語義單元一個文件即可&#xff0c;不要像Java那樣一個文件就…

黑客宣稱掌握了600多萬個Instagram賬號的信息

據外媒報道&#xff0c;上周早些時候&#xff0c;歌手兼演員賽琳娜戈麥斯因Instagram賬號被盜而發出大量來自前男友賈斯汀比伯的裸照。不過當時很快賽琳娜就拿回了對賬號的控制權并刪掉了這些裸照。就在大家以為這件事情已經平息的時候&#xff0c;Instagram卻被曝光了一個極為…

java apache.poi_Java Apache POI

我正在努力從excel文檔中讀取數據,該文檔每兩周更新一次,大約有50,000行數據,在開始新工作表之前可能會達到大約120,000.我正在使用Apache POI來獲取數據.我在下面得到了這個例外,但我認為最重要的一個例外是引起&#xff1a;java.lang.OutOfMemoryError&#xff1a;Java堆空間…

Hibernate逍遙游記-第2章-使用hibernate.properties

1. 1 package mypack;2 3 import org.hibernate.*;4 import org.hibernate.cfg.Configuration;5 import java.util.*;6 7 public class BusinessService{8 public static SessionFactory sessionFactory;9 10 /** 初始化Hibernate&#xff0c;創建SessionFactory實例 */1…

奇怪吸引子---Aizawa

奇怪吸引子是混沌學的重要組成理論&#xff0c;用于演化過程的終極狀態&#xff0c;具有如下特征&#xff1a;終極性、穩定性、吸引性。吸引子是一個數學概念&#xff0c;描寫運動的收斂類型。它是指這樣的一個集合&#xff0c;當時間趨于無窮大時&#xff0c;在任何一個有界集…

C#打印圖片

打印的原理是&#xff1a;生成mdi文件&#xff0c;系統碰到mdi的時候會自動以打印的方式處理。所以&#xff0c;不管用什么模板&#xff0c;什么方式&#xff1b;能在PrintPage事件處理中,生成一張要打印內容的圖片就OK了! C#實現打印源碼如下&#xff1a; #region 打印 …

mysql 里面不等于符號_mysql 不等于 符號寫法

經過測試發現mysql中用<>與!都是可以的&#xff0c;但sqlserver中不識別!,所以建議用<>selece * from jb51 where id<>45sql 里 符號<> 于 ! 的區別<> 與!都是不等于的意思&#xff0c;但是一般都是用<>來代碼不等于因為<>在任何SQL…