本篇文章基于java把数据库中的数据以Excel的方式导出,欢迎各位大神吐槽:

1、基于maven jar包引入如下:

  



1 <dependency>
2     <groupId>net.sourceforge.jexcelapi</groupId>
3     <artifactId>jxl</artifactId>
4     <version>2.6.12</version>
5 </dependency>



 

2、首先创建数据库对应的实体类VO :UserVO(具体代码省略);

3、确定导出Excel内的title列,并放在数组里:String[] (具体代码省略);

4、编写导出Excel的方法:

传入参数:

  Excel名称,Excel内的title列数组String[],数据集合List<UserVO>



1 package bp.util;
 2 
 3 import java.io.OutputStream;
 4 import java.util.List;
 5 import javax.servlet.http.HttpServletResponse;
 6 import java.lang.reflect.Field;
 7 
 8 import jxl.Workbook;
 9 import jxl.format.Alignment;
10 import jxl.format.Border;
11 import jxl.format.BorderLineStyle;
12 import jxl.format.VerticalAlignment;
13 import jxl.write.Label;
14 import jxl.write.WritableCellFormat;
15 import jxl.write.WritableFont;
16 import jxl.write.WritableSheet;
17 import jxl.write.WritableWorkbook;
18 
19 public class ExportExcel {
20 
21     public final static String exportExcel(String fileName, String[] Title, List listContent,
22             HttpServletResponse response) {
23         String result = "Excel文件导出成功!";
24         try {
25             OutputStream os = response.getOutputStream();
26             response.reset();
27             response.setHeader("Content-disposition",
28                     "attachment; filename=" + new String(fileName.getBytes("GB2312"), "ISO8859-1"));
29             response.setContentType("application/msexcel");
30             WritableWorkbook workbook = Workbook.createWorkbook(os);
31 
32             WritableSheet sheet = workbook.createSheet("Sheet1", 0);
33             jxl.SheetSettings sheetset = sheet.getSettings();
34             sheetset.setProtected(false);
35 
36             WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD);
37             WritableCellFormat wcf_center = new WritableCellFormat(BoldFont);
38             wcf_center.setBorder(Border.ALL, BorderLineStyle.THIN);
39             wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE);
40             wcf_center.setAlignment(Alignment.CENTRE);
41             wcf_center.setWrap(true);
42 
43             for (int i = 0; i < Title.length; i++) {
44                 sheet.setColumnView(i, 20);
45                 sheet.addCell(new Label(i, 0, Title[i], wcf_center));
46             }
47             Field[] fields = null;
48             int i = 1;
49             for (Object obj : listContent) {
50                 fields = obj.getClass().getDeclaredFields();
51                 int j = 0;
52                 for (Field v : fields) {
53                     v.setAccessible(true);
54                     Object va = v.get(obj);
55                     if (va == null) {
56                         va = "";
57                     }
58                     sheet.addCell(new Label(j, i, va.toString(), wcf_center));
59                     j++;
60                 }
61                 i++;
62             }
63             workbook.write();
64             workbook.close();
65 
66         } catch (Exception e) {
67             result = "Excel文件导出失败";
68             e.printStackTrace();
69         }
70         return result;
71     }
72 }



在需要导出数据的时候调用此方法即可;