1. 程式人生 > >統計各個資料庫的各個資料表的總數,然後寫入到excel中

統計各個資料庫的各個資料表的總數,然後寫入到excel中

package com.fline.aic.excel;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import com.fline.aic.dao.QueryDataOfCharts;
import com.fline.aic.vo.CountEntity;

/** * * @Description TODO * @author biehl * @Date 2018年9月21日 上午11:37:28 * */ public class WriteExcelForXSSF { private static WriteExcelForXSSF writeExcelForXSSF; private WriteExcelForXSSF() { } public static WriteExcelForXSSF getInstance() {
if (writeExcelForXSSF == null) { writeExcelForXSSF = new WriteExcelForXSSF(); } return writeExcelForXSSF; } /** * */ public Map<Integer, List<Integer>> readDbAreaOfDabase() { // Map集合 Map<Integer, List<Integer>> map = new
HashMap<Integer, List<Integer>>(); // List集合 List<Integer> list = new ArrayList<Integer>(); // 獲取到QueryDataOfCharts物件 QueryDataOfCharts instance = QueryDataOfCharts.getInstance(); // 查詢到xxx的資料 CountEntity queryDbxxx = instance.queryDbxxx(); list.add(queryDbxxx.getSx()); list.add(queryDbxxx.getBj()); list.add(queryDbxxx.getZz()); list.add(queryDbxxx.getYh()); map.put(0,list); return map; } public void writeDbAreaForXSSF() { // 建立一個空的工作簿 Workbook workbook = new XSSFWorkbook(); // 建立一個sheet頁 Sheet sheet = workbook.createSheet("xxxxxx報表"); // 合併單元格 /* * sheet.addMergedRegion(new CellRangeAddress( 2,//第一行(從0開始) 2,//最後一行(從0開始) * 0,//第一列(從0開始) 26 //最後一列(從0開始) )); */ // 建立一行,開始是0行,設定第2行 Row row = sheet.createRow(1); // 建立一個單元格,第一列 // Cell cell = row.createCell(1); // 第一行第一列設定值 // cell.setCellValue("資源共享服務中心資料匯聚統計表"); // row.createCell(0).setCellValue("資源共享服務中心資料匯聚統計表"); // 設定字型 Font font = workbook.createFont(); font.setFontHeightInPoints((short) 20); font.setFontName("Courier New"); font.setBold(true); // 設定數字的字型 Font font2 = workbook.createFont(); font2.setFontHeightInPoints((short) 10); font2.setFontName("Courier New"); font2.setBold(true); // 設定樣式 CellStyle cs = workbook.createCellStyle(); cs.setFont(font); CellStyle cs2 = workbook.createCellStyle(); cs2.setFont(font2); // 將要設定字型的單元格進行設定 // 建立一個單元格,第一列 Cell cell = row.createCell(1); // 第一行第一列設定值 cell.setCellValue("資源共享服務中心資料匯聚統計表"); cell.setCellStyle(cs); // 設定一行 Row row3 = sheet.createRow(3); // 建立一列,第一列設定地方前置庫名稱 Cell cell3 = row3.createCell(0); // 為這一行這一列設定值 cell3.setCellValue("xxx"); cell3.setCellStyle(cs2); // 設定一行 Row row4 = sheet.createRow(4); // 建立一列,第一列設定地方前置庫名稱 Cell cell4 = row4.createCell(0); // 為這一行這一列設定值 cell4.setCellValue("廣東"); cell4.setCellStyle(cs2); // 設定一行 Row row5 = sheet.createRow(5); // 建立一列,第一列設定地方前置庫名稱 Cell cell5 = row5.createCell(0); // 為這一行這一列設定值 cell5.setCellValue("江蘇"); cell5.setCellStyle(cs2); // 設定一行 Row row6 = sheet.createRow(6); // 建立一列,第一列設定地方前置庫名稱 Cell cell6 = row6.createCell(0); // 為這一行這一列設定值 cell6.setCellValue("貴州"); cell6.setCellStyle(cs2); // 設定一行 Row row7 = sheet.createRow(7); // 建立一列,第一列設定地方前置庫名稱 Cell cell7 = row7.createCell(0); // 為這一行這一列設定值 cell7.setCellValue("山東"); cell7.setCellStyle(cs2); // 設定一行 Row row8 = sheet.createRow(8); // 建立一列,第一列設定地方前置庫名稱 Cell cell8 = row8.createCell(0); // 為這一行這一列設定值 cell8.setCellValue("上海"); cell8.setCellStyle(cs2); // 設定一行 Row row9 = sheet.createRow(9); // 建立一列,第一列設定地方前置庫名稱 Cell cell9 = row9.createCell(0); // 為這一行這一列設定值 cell9.setCellValue("安徽"); cell9.setCellStyle(cs2); // 設定一行 Row row10 = sheet.createRow(10); // 建立一列,第一列設定地方前置庫名稱 Cell cell10 = row10.createCell(0); // 為這一行這一列設定值 cell10.setCellValue("四川"); cell10.setCellStyle(cs2); // 設定一行 Row row11 = sheet.createRow(11); // 建立一列,第一列設定地方前置庫名稱 Cell cell11 = row11.createCell(0); // 為這一行這一列設定值 cell11.setCellValue("重慶"); cell11.setCellStyle(cs2); Row row12 = sheet.createRow(2); // 建立一列,第一列設定地方前置庫名稱 Cell cell12 = row12.createCell(1); // 為這一行這一列設定值 cell12.setCellValue("脫敏後中間庫"); cell12.setCellStyle(cs2); // 建立一列,第一列設定地方前置庫名稱 Cell cell13 = row12.createCell(5); // 為這一行這一列設定值 cell13.setCellValue("匯聚資料區"); cell13.setCellStyle(cs2); // 建立一列,第一列設定地方前置庫名稱 Cell cell14 = row12.createCell(9); // 為這一行這一列設定值 cell14.setCellValue("匯聚前置庫"); cell14.setCellStyle(cs2); // 建立一列,第一列設定地方前置庫名稱 Cell cell15 = row12.createCell(12); // 為這一行這一列設定值 cell15.setCellValue("應用前置庫"); cell15.setCellStyle(cs2); // 建立一列,第一列設定地方前置庫名稱 Cell cell16 = row12.createCell(15); // 為這一行這一列設定值 cell16.setCellValue("核心資料區"); cell16.setCellStyle(cs2); // 建立一列,第一列設定地方前置庫名稱 Cell cell17 = row12.createCell(19); // 為這一行這一列設定值 cell17.setCellValue("共享前置庫"); cell17.setCellStyle(cs2); //xxx,xxx,xxx,xxx Row row13 = sheet.createRow(3); // 建立一列,第一列設定地方前置庫名稱 Cell cell18 = row13.createCell(1); // 為這一行這一列設定值 cell18.setCellValue("xxx"); cell18.setCellStyle(cs2); Cell cell19 = row13.createCell(2); // 為這一行這一列設定值 cell19.setCellValue("xxx"); cell19.setCellStyle(cs2); Cell cell20 = row13.createCell(3); // 為這一行這一列設定值 cell20.setCellValue("xxx"); cell20.setCellStyle(cs2); Cell cell21 = row13.createCell(4); // 為這一行這一列設定值 cell21.setCellValue("xxx"); cell21.setCellStyle(cs2); Cell cell22 = row13.createCell(5); // 為這一行這一列設定值 cell22.setCellValue("xxx"); cell22.setCellStyle(cs2); Cell cell23 = row13.createCell(6); // 為這一行這一列設定值 cell23.setCellValue("xxx"); cell23.setCellStyle(cs2); Cell cell24 = row13.createCell(7); // 為這一行這一列設定值 cell24.setCellValue("xxx"); cell24.setCellStyle(cs2); Cell cell25 = row13.createCell(8); // 為這一行這一列設定值 cell25.setCellValue("xxx"); cell25.setCellStyle(cs2); Cell cell26 = row13.createCell(9); // 為這一行這一列設定值 cell26.setCellValue("xxx"); cell26.setCellStyle(cs2); Cell cell27 = row13.createCell(10); // 為這一行這一列設定值 cell27.setCellValue("xxx"); cell27.setCellStyle(cs2); Cell cell28 = row13.createCell(11); // 為這一行這一列設定值 cell28.setCellValue("xxx"); cell28.setCellStyle(cs2); Cell cell29 = row13.createCell(12); // 為這一行這一列設定值 cell29.setCellValue("xxx"); cell29.setCellStyle(cs2); Cell cell30 = row13.createCell(13); // 為這一行這一列設定值 cell30.setCellValue("xxx"); cell30.setCellStyle(cs2); Cell cell31 = row13.createCell(14); // 為這一行這一列設定值 cell31.setCellValue("xxx"); cell31.setCellStyle(cs2); Cell cell32 = row13.createCell(15); // 為這一行這一列設定值 cell32.setCellValue("xxx"); cell32.setCellStyle(cs2); Cell cell33 = row13.createCell(16); // 為這一行這一列設定值 cell33.setCellValue("xxx"); cell33.setCellStyle(cs2); Cell cell34 = row13.createCell(17); // 為這一行這一列設定值 cell34.setCellValue("xxx"); cell34.setCellStyle(cs2); Cell cell35 = row13.createCell(18); // 為這一行這一列設定值 cell35.setCellValue("xxx"); cell35.setCellStyle(cs2); Cell cell36 = row13.createCell(19); // 為這一行這一列設定值 cell36.setCellValue("xxx"); cell36.setCellStyle(cs2); Cell cell37 = row13.createCell(20); // 為這一行這一列設定值 cell37.setCellValue("xxx"); cell37.setCellStyle(cs2); int sxCount = 0;// xxx int bjCount = 0;// xxx int yhCount = 0;// xxx int zzCount = 0;// xxx int sumCount = 0;// xxx,xxx,xxx,xxx總計 // 讀取查詢的xxx資料庫的統計資料 WriteExcelForXSSF instance = WriteExcelForXSSF.getInstance(); Map<Integer, List<Integer>> readDbAreaOfDabase = instance.readDbAreaOfDabase(); for (int i = 0; i < readDbAreaOfDabase.size(); i++) { List<Integer> list = readDbAreaOfDabase.get(i); // 設定一行 Row row2 = sheet.createRow(i + 4); for (int j = 0; j < list.size(); j++) { // 建立一列,第二列設定數值 Cell cell2 = row2.createCell(j + 1); // 獲取這一行一這列的值 Integer value = list.get(j); // 為這一行這一列設定值 cell2.setCellValue(value); cell2.setCellStyle(cs2); //列印輸出合計數量 //System.out.println(sxCount + "," + bjCount + "," + yhCount + "," + zzCount); } } // 建立輸出流 try { File file = new File("C:\\Users\\Aiyufei\\Desktop\\poi.xlsx"); if (file.exists()) { file.delete(); } else { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } FileOutputStream fos = new FileOutputStream(file); System.out.println(file.getName() + " ,excel檔案已經成功建立....."); try { // 寫入流中,建立此excel workbook.write(fos); } catch (IOException e) { e.printStackTrace(); } try { // 關閉流 fos.close(); } catch (IOException e) { e.printStackTrace(); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); System.out.println("開始時間:" + sdf.format(new Date())); WriteExcelForXSSF instance = WriteExcelForXSSF.getInstance(); instance.writeDbAreaForXSSF(); System.out.println("結束時間:" + sdf.format(new Date())); } }