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 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 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 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 tableData = Db.use(DataEaseModel.DB_NAME).find(sql, areaName); String excelFileName = "【" + areaName + "】" + dataSetName.replace("\\","").replace("/","") + ".xlsx"; ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true); } System.out.println("导出完成!"); //关闭Ssh链接 session.disconnect(); } }