|
|
|
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;
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
|
|
|
//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);
|
|
|
|
|
|
|
|
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.replace("\\","") + ".xlsx";
|
|
|
|
ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true);
|
|
|
|
}
|
|
|
|
System.out.println("导出完成!");
|
|
|
|
//关闭Ssh链接
|
|
|
|
session.disconnect();
|
|
|
|
}
|
|
|
|
}
|