java導(dǎo)出數(shù)據(jù)庫中Excel表格數(shù)據(jù)的方法
本篇文章基于java把數(shù)據(jù)庫中的數(shù)據(jù)以Excel的方式導(dǎo)出,歡迎各位大神吐槽:
1、基于maven jar包引入如下:
<dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> <version>2.6.12</version> </dependency>
2、首先創(chuàng)建數(shù)據(jù)庫對應(yīng)的實(shí)體類VO :UserVO(具體代碼省略);
3、確定導(dǎo)出Excel內(nèi)的title列,并放在數(shù)組里:String[] (具體代碼省略);
4、編寫導(dǎo)出Excel的方法:
傳入?yún)?shù):
Excel名稱,Excel內(nèi)的title列數(shù)組String[],數(shù)據(jù)集合List<UserVO>
package bp.util;
import java.io.OutputStream;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Field;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.VerticalAlignment;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class ExportExcel {
public final static String exportExcel(String fileName, String[] Title, List listContent,
HttpServletResponse response) {
String result = "Excel文件導(dǎo)出成功!";
try {
OutputStream os = response.getOutputStream();
response.reset();
response.setHeader("Content-disposition",
"attachment; filename=" + new String(fileName.getBytes("GB2312"), "ISO8859-1"));
response.setContentType("application/msexcel");
WritableWorkbook workbook = Workbook.createWorkbook(os);
WritableSheet sheet = workbook.createSheet("Sheet1", 0);
jxl.SheetSettings sheetset = sheet.getSettings();
sheetset.setProtected(false);
WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD);
WritableCellFormat wcf_center = new WritableCellFormat(BoldFont);
wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN);
wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE);
wcf_center.setAlignment(Alignment.CENTRE);
wcf_center.setWrap(true);
for (int i = 0; i < Title.length; i++) {
sheet.setColumnView(i, 20);
sheet.addCell(new Label(i, 0, Title[i], wcf_center));
}
Field[] fields = null;
int i = 1;
for (Object obj : listContent) {
fields = obj.getClass().getDeclaredFields();
int j = 0;
for (Field v : fields) {
v.setAccessible(true);
Object va = v.get(obj);
if (va == null) {
va = "";
}
sheet.addCell(new Label(j, i, va.toString(), wcf_center));
j++;
}
i++;
}
workbook.write();
workbook.close();
} catch (Exception e) {
result = "Excel文件導(dǎo)出失敗";
e.printStackTrace();
}
return result;
}
}
在需要導(dǎo)出數(shù)據(jù)的時(shí)候調(diào)用此方法即可;
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java?Web項(xiàng)目中如何添加Tomcat的Servlet-api.jar包(基于IDEA)
servlet-api.jar是在編寫servlet必須用到的jar包下面這篇文章主要給大家介紹了基于IDEAJava?Web項(xiàng)目中如何添加Tomcat的Servlet-api.jar包的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04
使用注解@Recover優(yōu)化丑陋的循環(huán)詳解
我們知道在實(shí)現(xiàn)一個(gè)功能的時(shí)候是可以使用不同的代碼來實(shí)現(xiàn)的,那么相應(yīng)的不同實(shí)現(xiàn)方法的性能肯定也是有差別的,下面這篇文章主要給大家介紹了關(guān)于使用注解@Recover優(yōu)化丑陋的循環(huán)的相關(guān)資料,需要的朋友可以參考下2022-04-04
springboot整合quartz項(xiàng)目使用案例
quartz是一個(gè)定時(shí)調(diào)度的框架,就目前市場上來說,其實(shí)有比quartz更優(yōu)秀的一些定時(shí)調(diào)度框架,不但性能比quartz好,學(xué)習(xí)成本更低,而且還提供可視化操作定時(shí)任務(wù),這篇文章主要介紹了springboot整合quartz項(xiàng)目使用(含完整代碼),需要的朋友可以參考下2023-05-05
java中ExecutorService創(chuàng)建方法總結(jié)
在本篇文章里小編給大家整理了一篇關(guān)于java中ExecutorService創(chuàng)建方法總結(jié),有興趣的朋友們可以參考下。2021-01-01
Java如何獲取數(shù)組和字符串的長度(length還是length())
這篇文章主要介紹了Java如何獲取數(shù)組和字符串的長度(length還是length()),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12

