国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

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

服務器之家 - 編程語言 - Java教程 - Java通過apache poi生成excel實例代碼

Java通過apache poi生成excel實例代碼

2020-11-06 20:59paulWen Java教程

本篇文章主要介紹了Java通過apache poi生成excel實例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

首先,jar

maven 添加依賴

?
1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
 <groupId>org.apache.poi</groupId>
 <artifactId>poi-ooxml</artifactId>
 <version>3.15</version>
</dependency>

開始以為是poi,然后就直接加poi的依賴,誰知道并沒有所需要的類。查了查才發現是poi-ooxml

要用到的類

  1. XSSFWorkbook , 代表一個excel文檔
  2. XSSFSheet , 代表文檔中的一個sheet
  3. XSSFRow , 代表sheet中的一行
  4. XSSFCell , 代表row中的每一項的值

最最基本的使用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//創建excel文檔
XSSFWorkbook workbook = new XSSFWorkbook();
//創建sheet
XSSFSheet sheet = workbook.createSheet("sheetName");
 
int rownum=0;
//創建首行
XSSFRow firstrow = sheet.createRow(rownum++);
int cellnum = 0;
//把保存在titles中的各個列名,分別在row中創建cell
for(String key : titles){
 XSSFCell cell = firstrow.createCell(cellnum++);
 cell.setCellValue(key);
}
 
 
//下面可以繼續創建行
 
//把excel寫到要寫的outputStream中
workbook.write(output);
//最后關閉
workbook.close();

小例子一枚

利用反射,把bean類中各屬性(用getXxx取出),寫入到excel中

ExcelUtil.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
package me.paul.excelDemo;
 
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 
public class ExcelUtil {
 
 public <T> void getExcel(List<T> list,Class<T> c,OutputStream output) throws IOException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{
 Map<String,Method> methodMap = new LinkedHashMap<>();
 Method[] methods = c.getDeclaredMethods();
 for(int i=0;i<methods.length;i++){
  Method method = methods[i];
  String name = method.getName();
  Pattern pattern = Pattern.compile("get(.*)");
  Matcher matcher = null;
  if((matcher = pattern.matcher(name)).matches()){
  name = matcher.group(1);
  char ch = name.charAt(0);
  char newch = (char) (ch + 32);
  name = name.replace(ch,newch);
  methodMap.put(name, method);
  }
 }
 
 XSSFWorkbook workbook = new XSSFWorkbook();
 XSSFSheet sheet = workbook.createSheet(c.getCanonicalName());
 int rownum=0;
 XSSFRow firstrow = sheet.createRow(rownum++);
 int cellnum = 0;
 for(String key : methodMap.keySet()){
  XSSFCell cell = firstrow.createCell(cellnum++);
  cell.setCellValue(key);
 }
 
 for(T t : list){
  XSSFRow row = sheet.createRow(rownum++);
  cellnum = 0;
  for(String key:methodMap.keySet()){
  Method method = methodMap.get(key);
                //設置可訪問,之前不知道這方法,所以關于反射那篇文章有錯誤,見諒見諒
                method.setAccessible(true);
  Object obj = method.invoke(t);
  XSSFCell cell = row.createCell(cellnum++);
  cell.setCellValue(obj== null ? "":obj.toString());
  }
  
 }
 workbook.write(output);
 workbook.close();
 }
}

App.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
package me.paul.excelDemo;
 
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
 
public class App {
 public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, IOException {
 List<User> list = new ArrayList<>();
 User u = new User();
 u.setId(1);
 u.setName("Paul");
 u.setAge(18);
 list.add(u);
 u = new User();
 u.setId(2);
 u.setName("Johnson");
 u.setAge(20);
 list.add(u);
 u = new User();
 u.setId(3);
 u.setName("David");
 u.setAge(22);
 list.add(u);
 OutputStream output = new FileOutputStream("/home/paul/user.xlsx");
 new ExcelUtil().getExcel(list, User.class,output);
 output.close();
 }
}

測試結果截圖

Java通過apache poi生成excel實例代碼

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

原文鏈接:http://www.wenjingyi.top/passage/get/39?utm_source=tuicool&utm_medium=referral

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 成年人黄色一级片 | 色综合久久88色综合天天 | 国产高清无密码一区二区三区 | 免费在线一区二区 | 国产一区二区三区不卡在线观看 | 欧美日韩不卡在线 | 久久中文字幕一区 | 日韩中文字幕在线观看 | 亚洲精品一区二区三区樱花 | 国产精品一区二区三区免费 | 精品黑人一区二区三区久久 | 精品国产乱码一区二区三区四区 | 久久99国产精品免费网站 | 国产激情 | 国产美女精品视频 | 一区二区三区免费 | 丝袜+亚洲+另类+欧美+变态 | 精品一二三区 | 国产精品密在线观看 | 亚洲精品免费看 | 亚洲中午字幕 | 亚洲毛片在线观看 | 久草视频在线播放 | 久久精品成人 | 欧美另类专区 | 久久久www | 曰批免费视频播放免费 | 美女视频一区二区三区 | 日韩黄网站 | 欧洲一区二区三区精品 | 一级a性色生活片毛片 | 亚洲精品一二三区 | 免费观看爱爱视频 | 久久国产免费 | 久久久精品日本 | 欧美www| 亚洲国产中文字幕 | 国产成人黄色 | 国产精品国产三级国产aⅴ原创 | 午夜区| 欧美视频日韩视频 |