1. 程式人生 > 實用技巧 >【POI】hutool萬能工具的poi使用

【POI】hutool萬能工具的poi使用

POI技術(hutool工具的簡單使用)

POI: java技術,操作excel文件
hutool-excel:常用poi功能,簡化封裝成工具類
寫出文件資料:
(1)匯出資料報表
① 獲得能夠向excel表格中輸出資訊物件[流]
	writer = ExcelUtil.getWriter("檔案路徑");
	註釋:excel表格檔案標準字尾:*.xls、*.xlsx
② excel表格資料包含:
	表頭:指明當前列資料的含義
	每行:多個單元格的資料;List<Object> | Map<字串標題,Object>
	表格:多行資料。List<Map<表頭,Object資料>>
③ 將資料寫出到Excel文件:writer.write(list);
④ 關閉流:writer.close();
(2)向輸出流中寫入資料
① 建立一個寫出的工具:ExcelWriter ew = ExcelUtil.getWriter();
② 將list多行資料集合寫入:writer.write(list);
③ flush,將資料寫入到指定輸出流中:writer.flush(outputStream);
④ 關閉流:writer.close();
(3)設定表格的sheet的名字
writer.renameSheet("xxx")
讀入文件資料:
① 建立一個讀入的工具:ExcelReader reader = ExcelUtil.getReader("檔案路徑");
② 讀取裡面的資料:List<Map<String,Object>> list = reader.readAll();
③ 關閉流:reader.close();
例項程式碼:
	匯出:準備:匯入POI的jar以及hutool的jar
	 ①方式一:(表格資訊寫到對應的檔案路徑)
		ExcelUtil.getWriter("檔案路徑");  //直接寫到檔案裡
	 ②方式二:(表格資訊寫到特定的輸出流裡)
List<Person> list = new ArrayList<Person>();
		persons.add(new Person("1001", "黃浩", 1, 18, "233456789", "鄭州"));
		persons.add(new Person("1002", "楊寧", 1, 18, "233456789", "鄭州"));
		persons.add(new Person("1003", "洪詩鵬", 1, 18, "233456789", "鄭州"));
// 重要將資料轉化為hutool-excel,能夠直接寫出的資料結構:List<Map<String,Object>>
		// 建立一個儲存多行資料的list
		List<Map<String, Object>> persons = new ArrayList<Map<String, Object>>();
		for (Person person : list) {
			// 每個person資訊,代表一行資料:Map<String,person的屬性>
			Map<String, Object> map = new LinkedHashMap<String, Object>();
			map.put("編號", person.getId());
			map.put("名字", person.getName());
			map.put("年齡", person.getAge());
			map.put("地址", person.getAddress());
			persons.add(map); // 將當前行的資料,加入persons
		}
		ExcelWriter writer = ExcelUtil.getWriter("D:/person.xlsx");// ①建立寫出資料到文件中的工具
		writer.renameSheet("聯絡人資訊表");	//設定sheet的名字
		writer.write(persons); // ②將資料寫出到文件匯出工具中
		writer.flush(輸出流);//輸出流:可以是檔案輸出流,也可以是控制器的響應流進行下載
		writer.close(); // ③關閉流
	匯入:
		① 建立一個讀入的工具:ExcelReader reader = ExcelUtil.getReader("D:/person.xlsx");
		② 讀取裡面的資料:List<Map<String, Object>> list = reader.readAll();
		③ 關閉流:reader.close();