diff --git a/src/main/java/com/dsideal/base/Tools/Step3_DataSetFakeData.java b/src/main/java/com/dsideal/base/Tools/Step3_DataSetFakeData.java deleted file mode 100644 index 77339af9..00000000 --- a/src/main/java/com/dsideal/base/Tools/Step3_DataSetFakeData.java +++ /dev/null @@ -1,168 +0,0 @@ -package com.dsideal.base.Tools; - -import com.dsideal.base.DataEase.Model.DataEaseModel; -import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; -import com.jfinal.plugin.activerecord.Db; -import com.jfinal.plugin.activerecord.Record; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class Step3_DataSetFakeData { - public static DataEaseModel dm = new DataEaseModel(); - - /** - * 拷贝昆明市的数据 - * - * @param table_name - * @param area_name - */ - public static void CopyData(String table_name, String source_area_name, String area_name, String parent_name) { - String sql = "select * from `" + table_name + "` where `行政区划`='" + source_area_name + "'"; - List list = Db.use(DataEaseModel.DB_NAME).find(sql); - for (Record r : list) { - r.set("行政区划", area_name); - r.set("上级行政区划", parent_name); - r.remove("id"); - } - System.out.println(table_name); - Db.use(DataEaseModel.DB_NAME).batchSave(table_name, list, 100); - } - - /** - * 删除某地数据 - * - * @param table_name - * @param area_name - */ - public static void deleteData(String table_name, String area_name) { - String sql = "delete from `" + table_name + "` where `行政区划`='" + area_name + "'"; - Db.use(DataEaseModel.DB_NAME).update(sql); - } - - public static void main(String[] args) throws IOException { - //切换至测试数据库 - //DataEaseModel.DB_NAME = "dataease_huanghai"; - - //初始化数据库链接 - LocalMysqlConnectUtil.Init(); - - DataEaseModel dm = new DataEaseModel(); - - //这几个是要保留的地名 - List keepArea = Arrays.asList("云南省", "昆明市", "楚雄州", "寻甸县"); - //所有市州 - Record rPrinvice = dm.getAreaByName("云南省"); - String province_id = rPrinvice.getStr("id"); - List listCity = dm.getAreaList(province_id); -// int identity_id = 1; -// //完善省级数据 -// List list = dm.getDataSetByIdentityId(identity_id, null); -// for (Record record : list) { -// String table_name = record.getStr("table_name"); -// System.out.println("正在处理数据集:" + table_name); -// String sql = "update `" + table_name + "` set `行政区划`='云南省' where `行政区划` is null"; -// Db.use(DataEaseModel.DB_NAME).update(sql); -// sql = "update `" + table_name + "` set `上级行政区划`='云南省' where `上级行政区划` is null"; -// Db.use(DataEaseModel.DB_NAME).update(sql); -// } -// -// //拷贝城市数据 -// for (Record rCity : listCity) { -// //城市名称 -// String area_name = rCity.getStr("area_name"); -// //如果在保留名单中,则跳过 -// if (keepArea.contains(area_name)) { -// continue; -// } -// //遍历所有市州数据集 -// identity_id = 2; -// list = dm.getDataSetByIdentityId(identity_id, null); -// for (Record record : list) { -// String table_name = record.getStr("table_name"); -// System.out.println("正在处理数据集:" + area_name + " " + table_name); -// //检查这个行政区划,在本数据表中是不是存在过,判断办法是 列名: `行政区划`= area_name,如果存在则不作处理,否则拷贝昆明市的数据 -// deleteData(table_name, area_name); -// CopyData(table_name, "昆明市", area_name, "云南省"); -// } -// } -// //获取所有县区 -// List listArea = dm.getProvinceArea("云南省"); -// for (Record rArea : listArea) { -// //城市名称 -// String area_name = rArea.getStr("area_name"); -// String parent_id = rArea.getStr("parent_id"); -// //隶属哪个市州 -// Record parentRecord = dm.getAreaById(parent_id); -// String parent_name = parentRecord.getStr("area_name"); -// //如果在保留名单中,则跳过 -// if (keepArea.contains(area_name)) { -// continue; -// } -// //遍历所有县区数据集 -// identity_id = 3; -// list = dm.getDataSetByIdentityId(identity_id, null); -// for (Record record : list) { -// String table_name = record.getStr("table_name"); -// System.out.println(area_name + "正在处理数据集:" + table_name); -// //检查这个行政区划,在本数据表中是不是存在过,判断办法是 列名: `行政区划`= area_name,如果存在则不作处理,否则拷贝寻甸县的数据 -// deleteData(table_name, area_name); -// CopyData(table_name, "寻甸县", area_name, parent_name); -// } -// } - - - //市州净注入与净流出的数据集 - String tableName = "excel_区域人口流动分布_193751804a"; - for (Record record : listCity) { - String cityName = record.getStr("area_name"); - String sql = "delete from `" + tableName + "` where `行政区划`='" + cityName + "'"; - Db.use(DataEaseModel.DB_NAME).update(sql); - System.out.println(cityName + "正在处理数据集:" + tableName); - //if (keepArea.contains(cityName)) continue; - Record rCity = dm.getAreaByName(cityName); - List lArea = dm.getAreaList(rCity.getStr("id")); - List writeList = new ArrayList<>(); - int x = 0; - for (Record r : lArea) { - x++; - Record rArea = new Record(); - rArea.set("行政区划", cityName); - rArea.set("下级行政区划", r.getStr("area_name")); - rArea.set("类型", x % 2 == 1 ? "净流出" : "净流入"); - rArea.set("数值", 900); - writeList.add(rArea); - } - Db.use(DataEaseModel.DB_NAME).batchSave(tableName, writeList, 100); - } - - -// //县区净注入与净流出的数据集 -// String tableName = "excel_区域人口流动分布_374179b760"; -// int x=0; -// for (Record record : listCity) { -// x++; -// String cityName = record.getStr("area_name"); -// if (keepArea.contains(cityName)) continue; -// String sql = "delete from `" + tableName + "` where `上级行政区划`='" + cityName + "'"; -// Db.use(DataEaseModel.DB_NAME).update(sql); -// -// System.out.println(cityName + "正在处理数据集:" + tableName); -// Record rCity = dm.getAreaByName(cityName); -// List lArea = dm.getAreaList(rCity.getStr("id")); -// List writeList = new ArrayList<>(); -// for (Record r : lArea) { -// Record rArea = new Record(); -// rArea.set("上级行政区划", cityName); -// rArea.set("行政区划", r.getStr("area_name")); -// rArea.set("类型", x % 2 == 1 ? "净流出" : "净流入"); -// rArea.set("数值(人)", 2313250); -// writeList.add(rArea); -// } -// Db.use(DataEaseModel.DB_NAME).batchSave(tableName, writeList, 100); -// } - - } -} diff --git a/src/main/java/com/dsideal/base/Tools/Step5_ReaderExcel.java b/src/main/java/com/dsideal/base/Tools/Step5_ReaderExcel.java deleted file mode 100644 index de7bc38e..00000000 --- a/src/main/java/com/dsideal/base/Tools/Step5_ReaderExcel.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.dsideal.base.Tools; - -import com.dsideal.base.Tools.FillData.ExcelKit.ExcelKit; -import org.apache.poi.ss.usermodel.*; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; - -import java.io.FileInputStream; -import java.io.IOException; - -public class Step5_ReaderExcel { - - - public static void main(String[] args) throws IOException { - String filePath = "D:\\dsWork\\YunNanDsBase\\Doc\\待处理\\区\\【1】学前幼儿入园总量预测\\鲁甸县教育发展规模数据收集表.xlsx"; - //第一个表格的宽度=23 - int firstTableWidth = ExcelKit.transLetter2Num("W") + 1; - //第二个表格的宽度=11 - int secondTableWidth = ExcelKit.transLetter2Num("K") + 1; - - System.out.println(firstTableWidth); - System.out.println(secondTableWidth); - - FileInputStream fis = new FileInputStream(filePath); - Workbook workbook = new XSSFWorkbook(fis); - //遍历前4个工作表 - for (int i = 0; i < 4; i++) { - Sheet sheet = workbook.getSheetAt(i); - System.out.println("Sheet Name: " + sheet.getSheetName()); - int skipRows = 2;//放过头两行 - int rowIndex; - for (rowIndex = skipRows; rowIndex <= sheet.getLastRowNum(); rowIndex++) { - Row row = sheet.getRow(rowIndex); - if (row == null) break; - // 读取表格数据 - for (int j = 0; j < firstTableWidth; j++) { - Cell cell = row.getCell(j); - if (cell != null) - System.out.print(ExcelKit.readCell(cell)+"\t"); - } - System.out.println(); - } - //之所以减1,是因为是在判断为空时才停止,也就是过了真实数据一行后,所以要减1 - System.out.println("第一个表格开始行索引=2,结束行索引=" + (rowIndex - 1)); - - //第二个表格 - //从rowIndex开始,向下面查找,直到第一列中出现文字“自动计算招生数、在校生数”,此行的再下一行就是真正的第二个表格的开始位置 - int secondTableStartRowIndex = -1, secondTableEndRowIndex = -1; - //找到开始行 - for (; rowIndex <= sheet.getLastRowNum(); rowIndex++) { - Row row = sheet.getRow(rowIndex); - if (row != null && row.getCell(0) != null - && row.getCell(0).toString().contains("自动计算招生数、在校生数")) { - if (secondTableStartRowIndex == -1) - secondTableStartRowIndex = rowIndex; - } - if (secondTableStartRowIndex > 0 && row == null) { - secondTableEndRowIndex = rowIndex - 1; - break; - } - } - //表头有两行,需要加2 - secondTableStartRowIndex += 2; - //输出第二个表格的开始行索引和结束行索引 - System.out.println("第二个表格开始行索引=" + secondTableStartRowIndex + ",结束行索引=" + secondTableEndRowIndex); - //输出第二个表格的数据 - for (rowIndex = secondTableStartRowIndex; rowIndex <= secondTableEndRowIndex; rowIndex++) { - Row row = sheet.getRow(rowIndex); - for (int j = 0; j < secondTableWidth; j++) { - Cell cell = row.getCell(j); - // 如果单元格是公式类型 - if (cell.getCellType() == CellType.FORMULA) { - // 计算公式结果 - cell.setCellType(CellType.NUMERIC); - } - ExcelKit.readCell(cell); - } - System.out.println(); - } - } - workbook.close(); - fis.close(); - } -} \ No newline at end of file