使用JAVA将数据库导出到Excel文档
扫描二维码
随时随地手机看文章
首先将要导出的数据库表的数据封装到一个list集合中,然后循环遍历该list集合
再应用jxl组件将这些数据写入excel文件。
001
package
com.ybhacker.mailbox.util;
002
003
import
java.io.File;
004
import
java.util.List;
005
006
import
jxl.*;
007
import
jxl.format.Alignment;
008
import
jxl.format.Colour;
009
import
jxl.format.UnderlineStyle;
010
import
jxl.format.VerticalAlignment;
011
import
jxl.write.Label;
012
import
jxl.write.WritableFont;
013
import
jxl.write.WritableSheet;
014
import
jxl.write.WritableWorkbook;
015
016
import
com.ybhacker.mailbox.model.BoxList;
017
018
/**
019
* Excel操作
020
*
021
* @author Windows7
022
*
023
*/
024
public
class
ExcelOperationUtil {
025
026
/**
027
* 保存数据内容到excel
028
* @param list
029
* @param savepath
030
* @return
031
*/
032
033
public
boolean
readDataToExcelFile(List
034
try
{
035
WritableWorkbook book = Workbook.createWorkbook(
new
File(savepath));
036
WritableSheet sheet = book.createSheet(
"SHELL"
,
0
);
037
// 设置字体样式
038
jxl.write.WritableFont font =
new
jxl.write.WritableFont(
039
WritableFont.ARIAL,
15
, WritableFont.BOLD,
false
,
040
UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.GREEN);
041
jxl.write.WritableCellFormat cellFormat =
new
jxl.write.WritableCellFormat(
042
font);
043
cellFormat.setAlignment(Alignment.CENTRE);
044
cellFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
// 设置单元格内容两端对齐
045
cellFormat.setBackground(Colour.GRAY_25);
// 背景颜色
046
Label label_title =
new
Label(
0
,
0
,
"WEBSHELL收信箱子系统V2.0"
,
047
cellFormat);
048
sheet.mergeCells(
0
,
0
,
4
,
0
);
// 合并第一行的第1个到第5个单元格
049
sheet.setRowView(
0
,
600
,
false
);
// 设置第一行的行高
050
051
Label label_id =
new
Label(
0
,
1
,
"ID"
);
052
Label label_url =
new
Label(
1
,
1
,
"木马地址"
);
053
Label label_script =
new
Label(
2
,
1
,
"脚本类型"
);
054
Label label_pass =
new
Label(
3
,
1
,
"密码"
);
055
Label label_host =
new
Label(
4
,
1
,
"域名"
);
056
Label label_google =
new
Label(
5
,
1
,
"谷歌权重"
);
057
Label label_baidu =
new
Label(
6
,
1
,
"百度权重"
);
058
Label label_indexed =
new
Label(
7
,
1
,
"收录总数"
);
059
Label label_createtime =
new
Label(
8
,
1
,
"创建时间"
);
060
Label label_sell =
new
Label(
9
,
1
,
"是否出售"
);
061
062
sheet.setColumnView(
4
,
15
);
// 设置列宽
063
sheet.addCell(label_title);
064
sheet.addCell(label_id);
065
sheet.addCell(label_url);
066
sheet.addCell(label_script);
067
sheet.addCell(label_pass);
068
sheet.addCell(label_host);
069
sheet.addCell(label_google);
070
sheet.addCell(label_baidu);
071
sheet.addCell(label_indexed);
072
sheet.addCell(label_createtime);
073
sheet.addCell(label_sell);
074
075
for
(
int
i =
0
; i < list.size(); i++) {
// 遍历数据对象的集合,将所有信息导出到Excel
076
BoxList temp = (BoxList) list.get(i);
077
String script =
"未知"
;
078
String createtime = temp.getnCreateTime().toString();
079
if
(temp.getnScript() ==
1
) {
080
script =
"ASP"
;
081
}
082
if
(temp.getnScript() ==
2
) {
083
script =
"PHP"
;
084
}
085
if
(temp.getnScript() ==
3
) {
086
script =
"ASPX"
;
087
}
088
if
(temp.getnScript() ==
4
) {
089
script =
"JSP"
;
090
}
091
String Sell =
"正常"
;
092
if
(temp.isnSell()) {
093
Sell =
"已售"
;
094
}
095
Label id_value =
new
Label(
0
, i +
2
, temp.getId() +
""
);
096
Label url_value =
new
Label(
1
, i +
2
, temp.getnUrl());
097
Label script_value =
new
Label(
2
, i +
2
, script);
098
Label pass_value =
new
Label(
3
, i +
2
, temp.getnPass());
099
Label host_value =
new
Label(
4
, i +
2
, temp.getnHost());
100
Label google_value =
new
Label(
5
, i +
2
, temp.getnGoogle());
101
Label baidu_value =
new
Label(
6
, i +
2
, temp.getnBaidu());
102
Label indexed_value =
new
Label(
7
, i +
2
, temp.getnIndexed());
103
Label createtime_value =
new
Label(
8
, i +
2
, createtime);
104
Label sell_value =
new
Label(
9
, i +
2
, Sell);
105
106
sheet.addCell(id_value);
107
sheet.addCell(url_value);
108
sheet.addCell(script_value);
109
sheet.addCell(pass_value);
110
sheet.addCell(host_value);
111
sheet.addCell(google_value);
112
sheet.addCell(baidu_value);
113
sheet.addCell(indexed_value);
114
sheet.addCell(createtime_value);
115
sheet.addCell(sell_value);
116
117
}
118
book.write();
119
book.close();
120
return
true
;
121
}
catch
(Exception e) {
122
System.out.println(
"异常信息:"
+ e.getMessage());
123
e.printStackTrace();
124
return
false
;
125
}
126
}
127
}