main
黄海 9 months ago
parent b7984b6d3b
commit 286164f9b2

@ -2,95 +2,83 @@ package com.dsideal.base.Tools;
import com.dsideal.base.DataEase.Model.DataEaseModel;
import com.dsideal.base.Tools.Util.SshConnectUtil;
import com.dsideal.base.Util.ExcelCommonUtil;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ExportExcel {
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
public class ExportExcel {
public static DataEaseModel dm = new DataEaseModel();
public static void main(String[] args) throws IOException, JSchException {
//通过ssh链接到Mysql数据库
Session session = SshConnectUtil.Init();
DataEaseModel dm = new DataEaseModel();
//1、添加到数据集表中
dm.collectDataSet();
//2、加上主键
dm.addPrimaryKey();
//3、将所有非空列去掉不允许为空的限制
dm.updateNotNullColumns();
//Excel的保存目录
String exportPath = "D:/360Downloads/Excel";
File directory = new File(exportPath);
// 检查目录是否存在
if (!directory.exists()) {
directory.mkdirs();
}
String privinceName = "云南省";
//一、导出省的数据集
System.out.println("正在处理省数据集...");
List<Record> list = dm.getDataSetByIdentityId(1);
System.out.println("数据集个数=" + list.size());
for (Record record : list) {
String tableName = record.getStr("table_name");
String dataSetName = record.getStr("dataset_name");
System.out.println("正在处理数据集:" + dataSetName);
//对此表中的数据进行直接导出EXCEL
String sql = "select * from `" + tableName + "`";
List<Record> tableData = Db.use(DataEaseModel.DB_NAME).find(sql);
String excelFileName = "【" + privinceName + "】" + dataSetName + ".xlsx";
ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true);
}
//二、导出市的数据集
System.out.println("正在处理市数据集...");
String city_name = "昆明市";
list = dm.getDataSetByIdentityId(2);
System.out.println("数据集个数=" + list.size());
for (Record record : list) {
String tableName = record.getStr("table_name");
String dataSetName = record.getStr("dataset_name");
System.out.println("正在处理数据集:" + dataSetName);
// //4、遍历所有数据集的表
// int total = 0;
// for (int i = 1; i <= 3; i++) {//1省管理员2市州管理员3县区管理员
// switch (i) {
// case 1:
// System.out.println("正在处理省管理员需要看到的数据集~");
// break;
// case 2:
// System.out.println("正在处理市州管理员需要看到的数据集~");
// break;
// case 3:
// System.out.println("正在处理县区管理员需要看到的数据集~");
// break;
// }
//
// //Excel的保存目录
// String exportPath = "D:/360Downloads/Excel";
// File directory = new File(exportPath);
// // 检查目录是否存在
// if (!directory.exists()) {
// directory.mkdirs();
// }
//
// List<Record> list = dm.getDataSetByIdentityId(i);
// System.out.println("数据集个数=" + list.size());
// total += list.size();
// for (Record record : list) {
// String tableName = record.getStr("table_name");
// String dataSetName = record.getStr("dataset_name");
// System.out.println("正在处理数据集:" + dataSetName);
//
// //省的导出全部,市州管理员只导出市州数据,县区管理员只导出县区数据
// List<Record> tableData = new ArrayList<>();
// String excelFileName = "";
// String privinceName = "云南省";
// Record privinceRecord = dm.getAreaByName(privinceName);
// String privinceId = privinceRecord.getStr("id");
// if (i == 1) {
// //对此表中的数据进行直接导出EXCEL
// String sql = "select * from `" + tableName + "`";
// tableData = Db.use(DataEaseModel.DB_NAME).find(sql);
// excelFileName = "【" + privinceName + "】" + dataSetName + ".xlsx";
// ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true);
// } else if (i == 2) {
// //枚举所有的市州数据然后进行导出EXCEL
// List<Record> cityList = dm.getAreaList(privinceId);
// String cityName = "";
// String cityId = "";
// for (Record rCity : cityList) {
// cityName = rCity.getStr("area_name");
// cityId = rCity.getStr("id");
// if (i == 3) {
//
// //枚举所有的县区数据然后进行导出EXCEL
// ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true);
// }
// }
// String sql = "select * from `" + tableName + "` where `行政区划`=?";
// System.out.println(tableName);
// tableData = Db.use(DataEaseModel.DB_NAME).find(sql, cityName);
// excelFileName = "【" + cityName + "】" + dataSetName + ".xlsx";
// ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true);
// }
// }
// }
// System.out.println("恭喜,所有数据处理完毕,共生成数据集数量=" + total + "个。");
Record cityRecord = dm.getAreaByName(city_name);
String cityName = cityRecord.getStr("area_name");
String sql = "select * from `" + tableName + "` where `行政区划`=?";
List<Record> tableData = Db.use(DataEaseModel.DB_NAME).find(sql, cityName);
String excelFileName = "【" + cityName + "】" + dataSetName + ".xlsx";
ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true);
}
//三、导出县区的数据集
System.out.println("正在处理县区数据集...");
String area_name = "寻甸县";
list = dm.getDataSetByIdentityId(3);
System.out.println("数据集个数=" + list.size());
for (Record record : list) {
String tableName = record.getStr("table_name");
String dataSetName = record.getStr("dataset_name");
System.out.println("正在处理数据集:" + dataSetName);
Record areaRecord = dm.getAreaByName(area_name);
String areaName = areaRecord.getStr("area_name");
String sql = "select * from `" + tableName + "` where `行政区划`=?";
List<Record> tableData = Db.use(DataEaseModel.DB_NAME).find(sql, areaName);
String excelFileName = "【" + areaName + "】" + dataSetName + ".xlsx";
ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true);
}
System.out.println("导出完成!");
//关闭Ssh链接
session.disconnect();
}
}

Loading…
Cancel
Save