一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - java web將數(shù)據(jù)導(dǎo)出為Excel格式文件代碼片段

java web將數(shù)據(jù)導(dǎo)出為Excel格式文件代碼片段

2020-07-31 15:39夏詩鳶 Java教程

這篇文章主要為大家詳細介紹了java web將數(shù)據(jù)導(dǎo)出為Excel格式文件代碼片段,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java web將數(shù)據(jù)導(dǎo)出Excel格式文件的具體代碼,供大家參考,具體內(nèi)容如下

1、jsp代碼

<input type="button" class="btn btn-info" onclick="getVerExcel();" value="導(dǎo)出為Excel文件" />

2、js代碼

?
1
2
3
4
function getVerExcel() {
  window.location.href = '/pms/jsp/version/getPrdVerListExcel?page='
      + $("#getPage").html() + '&key=' + $("#select").val();
}

3、java代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/**
 *
 * Purpose :將產(chǎn)品版本列表導(dǎo)出為Excel文件
 * @param req
 *      請求
 * @param resp
 *      應(yīng)答
 * @param page
 *      當前頁數(shù)
 * @param key
 *      查詢條件
 * @return
 */
@RequestMapping("getPrdVerListExcel")
public void getExcel(HttpServletRequest req, HttpServletResponse resp, Integer page, String key) {
  // 設(shè)置文件的mime類型
  resp.setContentType("application/vnd.ms-excel");
 
  // 得到所有的數(shù)據(jù)
  List<Version> verList = prdVersionSer.getAllPrdVersion(key);
  // 若沒有數(shù)據(jù),則給用戶提示
  if (verList.size() == 0) {
    req.setAttribute("getFileMsg", "沒有符合條件的信息!");
    req.setAttribute("select", key);
    try {
      req.getRequestDispatcher("/jsp/version/ver_list.jsp").forward(req, resp);
    } catch (Exception e) {
      e.printStackTrace();
    }
  } else {
    // 存儲編碼后的文件名
    String name = "name";
    // 存儲文件名稱
    String n = "";
    if (key != "") {
      n = verList.get(0).getPrdName() + "的版本列表";
    } else {
      n = "產(chǎn)品版本列表";
    }
    try {
      name = URLEncoder.encode(n, "utf-8");
    } catch (UnsupportedEncodingException e1) {
      e1.printStackTrace();
    }
    resp.setHeader("content-disposition",
        "attachment;filename=" + name + ".xls;filename*=utf-8''" + name + ".xls");
 
    System.out.println("key:" + key);
 
    // 從session中刪除saveExcelMsg屬性
    req.getSession().removeAttribute("saveExcelMsg");
    // 定義一個輸出流
    ServletOutputStream sos = null;
 
    // 創(chuàng)建一個工作簿
    HSSFWorkbook wb = new HSSFWorkbook();
    // 創(chuàng)建一個工作表
    HSSFSheet sheet = null;
    if (key != "") {
      sheet = wb.createSheet(verList.get(0).getPrdName() + "的版本信息");
    } else {
      sheet = wb.createSheet("產(chǎn)品版本信息");
    }
    // 返回數(shù)據(jù)格式對象
    // 從格式對象中獲取對應(yīng)日期格式的編號,如果格式不存在,該方法會為它生成新的編號
    HSSFDataFormat format = wb.createDataFormat();
    short dfNum = format.getFormat("yyyy-mm-dd");
    // 創(chuàng)建樣式對象
    CellStyle style = wb.createCellStyle();
    // 設(shè)置數(shù)據(jù)格式
    style.setDataFormat(dfNum);
    // 創(chuàng)建第一行(表格標題)
    HSSFRow row = sheet.createRow(0);
    HSSFCell cell = row.createCell(0, HSSFCell.CELL_TYPE_STRING);
    if (key != "") {
      cell.setCellValue(verList.get(0).getPrdName() + "的產(chǎn)品版本列表");
    } else {
      cell.setCellValue("產(chǎn)品版本列表");
    }
 
    // 創(chuàng)建第二行(表頭)
    row = sheet.createRow(1);
    cell = row.createCell(0, HSSFCell.CELL_TYPE_STRING);
    cell.setCellValue("序號");
 
    cell = row.createCell(1, HSSFCell.CELL_TYPE_STRING);
    cell.setCellValue("產(chǎn)品名稱");
 
    cell = row.createCell(2, HSSFCell.CELL_TYPE_STRING);
    cell.setCellValue("版本號");
 
    cell = row.createCell(3, HSSFCell.CELL_TYPE_STRING);
    cell.setCellValue("發(fā)布日期");
 
    cell = row.createCell(4, HSSFCell.CELL_TYPE_STRING);
    cell.setCellValue("版本類型");
 
    cell = row.createCell(5, HSSFCell.CELL_TYPE_STRING);
    cell.setCellValue("版本描述");
 
    int num = 1;
    // 遍歷輸出verList中的數(shù)據(jù),將其存入Excel中
    for (int i = 0; i < verList.size(); i++) {
      row = sheet.createRow(i + 2);
      // 寫入序號
      cell = row.createCell(0, HSSFCell.CELL_TYPE_NUMERIC);
      cell.setCellValue(num);
      num++;
      // 寫入產(chǎn)品名稱
      cell = row.createCell(1, HSSFCell.CELL_TYPE_STRING);
      cell.setCellValue(verList.get(i).getPrdName());
      // 寫入版本號
      cell = row.createCell(2, HSSFCell.CELL_TYPE_STRING);
      cell.setCellValue(verList.get(i).getVerNo());
 
      // 寫入發(fā)布日期(日期格式做處理)
      cell = row.createCell(3, HSSFCell.CELL_TYPE_STRING);
      // 將樣式應(yīng)用于單元格
      cell.setCellStyle(style);
      cell.setCellValue(verList.get(i).getVerDate());
 
      // 寫入版本類型
      cell = row.createCell(4, HSSFCell.CELL_TYPE_STRING);
      cell.setCellValue(verList.get(i).getVerType());
 
      // 寫入版本描述
      cell = row.createCell(5, HSSFCell.CELL_TYPE_STRING);
      cell.setCellValue(verList.get(i).getVerDesc());
    }
    try {
      // 保存到文件中
      sos = resp.getOutputStream();
      wb.write(sos);
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (sos != null) {
        try {
          sos.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 风间由美一区二区播放合集 | 视频在线观看高清免费 | 全日爱韩国视频在线观看 | 国产美女屁股直流白浆视频无遮挡 | 亚洲骚图 | 五月天精品在线 | 国产成人精品999在线 | 国产拍拍拍 | 亚洲AV福利天堂一区二区三 | 四虎永久在线精品免费影视 | 国产精品天天在线 | 99热.com| 国产在线播放一区 | 网址在线观看你懂我意思吧免费的 | 久久久无码精品无码国产人妻丝瓜 | 啊好痛嗯轻一点免费 | 国产一区二区在线观看视频 | 国产在线欧美日韩精品一区二区 | 国产激情一区二区三区四区 | 美女被灌浣肠失禁视频 | 精品国产乱码久久久久久软件 | 日本精品一区二区三区 | 好男人好资源在线观看 | 免费我看视频在线观看 | 精品视频免费在线观看 | 三体动漫在线观看免费完整版2022 | 免费视频片在线观看 | 公交车揉捏大乳呻吟喘娇 | 青青青青青操 | 国产亚洲精品日韩香蕉网 | 嫩草在线观看视频 | 女人用粗大自熨喷水在线视频 | 特级淫片欧美高清视频蜜桃 | 亚洲成年网 | 西施打开双腿下面好紧 | 日韩一品在线播放视频一品免费 | 午夜A级理论片左线播放 | 外国黄色软件 | 蜜色网| 青青久久精品国产免费看 | 日韩视频在线精品视频免费观看 |