From 2535d9b769db97557ff2304546e11dc040b3dfe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 12 Nov 2024 07:52:09 +0800 Subject: [PATCH] 'commit' --- .../【7】概览/【昭通市】概览.xlsx | Bin 10607 -> 0 bytes Doc/待处理/市/【7】概览/概览.xlsx | Bin 0 -> 9230 bytes .../市/【7】概览/黄海解读.txt | 16 ++ .../dsideal/base/Tools/FillData/City/C7.java | 141 ++++++++++++++++++ .../base/Tools/FillData/City/C7_Test.java | 57 +++++++ .../Tools/FillData/ExcelKit/ExcelKit.java | 29 ++++ .../Tools/FillData/Test/ExcelColumnIndex.java | 16 ++ 7 files changed, 259 insertions(+) delete mode 100644 Doc/待处理/市/【7】概览/【昭通市】概览.xlsx create mode 100644 Doc/待处理/市/【7】概览/概览.xlsx create mode 100644 Doc/待处理/市/【7】概览/黄海解读.txt create mode 100644 src/main/java/com/dsideal/base/Tools/FillData/City/C7.java create mode 100644 src/main/java/com/dsideal/base/Tools/FillData/City/C7_Test.java create mode 100644 src/main/java/com/dsideal/base/Tools/FillData/Test/ExcelColumnIndex.java diff --git a/Doc/待处理/市/【7】概览/【昭通市】概览.xlsx b/Doc/待处理/市/【7】概览/【昭通市】概览.xlsx deleted file mode 100644 index 292b12f05718db29d162b23f19a1dbd716e5271b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10607 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 GtoMJ^u#p=8 diff --git a/Doc/待处理/市/【7】概览/概览.xlsx b/Doc/待处理/市/【7】概览/概览.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1e7c6364696a221c7d28734e3c9976dfc7d5e114 GIT binary patch literal 9230 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 F{XetqLZtuz literal 0 HcmV?d00001 diff --git a/Doc/待处理/市/【7】概览/黄海解读.txt b/Doc/待处理/市/【7】概览/黄海解读.txt new file mode 100644 index 00000000..8f00e7c8 --- /dev/null +++ b/Doc/待处理/市/【7】概览/黄海解读.txt @@ -0,0 +1,16 @@ +行政区划 类型 年份 学段 数值 上级行政区划 +昭通市 学校总数 2023(写死) 学前(遍历) 1529 云南省 + +源文件中第一列开始查找 市州 名称,一般是最后一行不空的行, + +学前:第I列 + 学校总数: + 招生总数: + 在校生总数: + 教职工总数: + 专任教师数: + +小学:第S列 +初中:第AD列 +普通高中:第AN列 +中职:第AU列 diff --git a/src/main/java/com/dsideal/base/Tools/FillData/City/C7.java b/src/main/java/com/dsideal/base/Tools/FillData/City/C7.java new file mode 100644 index 00000000..b8012149 --- /dev/null +++ b/src/main/java/com/dsideal/base/Tools/FillData/City/C7.java @@ -0,0 +1,141 @@ +package com.dsideal.base.Tools.FillData.City; + +import cn.hutool.core.io.FileUtil; +import com.dsideal.base.Tools.FillData.ExcelKit.ExcelKit; +import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; +import com.dsideal.base.Tools.Util.ReadDocxUtil; +import org.apache.poi.openxml4j.exceptions.InvalidFormatException; +import org.apache.poi.openxml4j.util.ZipSecureFile; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.xssf.usermodel.XSSFCellStyle; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.apache.poi.xwpf.usermodel.XWPFChart; +import org.apache.poi.xwpf.usermodel.XWPFDocument; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class C7 { + //开始读取市州word文档 + static String parentPath = "D:\\dsWork\\YunNanDsBase\\Doc\\全省及州市县区人口与教育报告集20241023\\16个州市报告2022\\分析报告20240510"; + + //示例Excel + static String sampleExcelPath = "D:\\dsWork\\YunNanDsBase\\Doc\\待处理\\市\\【6】普通高中在校生规模总量变化及预测\\普通高中在校生规模总量变化及预测.xlsx"; + + public static void main(String[] args) throws IOException, InvalidFormatException { + //初始化数据库连接 + LocalMysqlConnectUtil.Init(); + //实例化 + ReadDocxUtil ru = new ReadDocxUtil(); + + //目标Excel,就是把文件名解析出来后,后面添加上【成果】,需要动态计算获取,不能写死 + String excelPath = sampleExcelPath.replace(".xlsx", "【成果】.xlsx"); + ExcelKit.delExcel(excelPath); + + //结果Excel + XSSFWorkbook outWorkbook = new XSSFWorkbook(); + //结果Sheet + XSSFSheet outSheet = ExcelKit.CreateSheet(outWorkbook); + //样式 + XSSFCellStyle headerStyle = ExcelKit.getHeaderStyle(outWorkbook); + XSSFCellStyle dataStyle = ExcelKit.getDataStyle(outWorkbook); + + //拷贝文件头 + ExcelKit.CopyHead(sampleExcelPath, outSheet, headerStyle); + + //找到parentPath下一级目录中所有文件 + List files = FileUtil.loopFiles(parentPath, file -> true); + int rowIndex = 0; + //处理这个目录 + if (files != null) { + for (File file : files) { + //判断file是不是目录,是目录的需要跳过 + if (file.isDirectory()) continue; + //城市名称 + String cityName = ru.getCityOrAreaName(file.getName()); + String fileName = file.getName(); + + //判断是否为docx文件 + if (fileName.endsWith(".docx") && !fileName.startsWith("~")) { + System.out.println("正在处理" + cityName + "市州文件..."); + //读取文件 + String inputUrl = file.getAbsolutePath(); + InputStream is = new FileInputStream(inputUrl); + ZipSecureFile.setMinInflateRatio(-1.0d); + XWPFDocument doc = new XWPFDocument(is); + //排序后的图表 + List charts = ExcelKit.getSortListForXWPFChart(doc.getCharts()); + + //1号模板,数据在图表12和35中 + int firstChartNumber = 12, secondChartNumber = 35; + XSSFWorkbook workbook = charts.get(firstChartNumber - 1).getWorkbook(); + List> source1 = ExcelKit.readSheet(workbook); + XSSFWorkbook workbook2 = charts.get(secondChartNumber - 1).getWorkbook(); + List> source2 = ExcelKit.readSheet(workbook2); + + String c2 = "总在校生数"; + //遍历source1 + for (List r : source1) { + Row outRow = outSheet.createRow(++rowIndex); + // 导出数据 + //年份,总量分类,区域分类,总量数值,区域数值,行政区划,上级行政区划 + ExcelKit.putData(outRow, new ArrayList<>(Arrays.asList(r.getFirst(), c2, "", r.get(4), "", cityName, "云南省")), dataStyle); + } + //遍历source2 + for (int i = 0; i < source2.size(); i++) { + if (i == 0) continue;//跳过2022年,这个年份重复了 + List r = source2.get(i); + Row outRow = outSheet.createRow(++rowIndex); + // 导出数据 + //年份,总量分类,区域分类,总量数值,区域数值,行政区划,上级行政区划 + ExcelKit.putData(outRow, new ArrayList<>(Arrays.asList(r.getFirst(), c2, "", r.get(4), "", cityName, "云南省")), dataStyle); + } + //2022年基数:遍历source2 + for (int i = 0; i < source2.size(); i++) { + List r = source2.get(i); + Row outRow = outSheet.createRow(++rowIndex); + // 导出数据 + //年份,总量分类,区域分类,总量数值,区域数值,行政区划,上级行政区划 + ExcelKit.putData(outRow, new ArrayList<>(Arrays.asList(r.getFirst(), "2022年基数", "", source2.getFirst().get(4), + "", cityName, "云南省")), dataStyle); + } + + //城区+镇区+乡村 + List areaList = new ArrayList<>(); + areaList.add("城区"); + areaList.add("镇区"); + areaList.add("乡村"); + + for (int k = 0; k < areaList.size(); k++) { + String areaName = areaList.get(k); + + for (int i = 0; i < source1.size(); i++) { + List r = source1.get(i); + Row outRow = outSheet.createRow(++rowIndex); + //年份,总量分类,区域分类,总量数值,区域数值,行政区划,上级行政区划 + ExcelKit.putData(outRow, new ArrayList<>(Arrays.asList(r.getFirst(), "", areaName, "", + r.get(k + 1), cityName, "云南省")), dataStyle); + } + for (int i = 0; i < source2.size(); i++) { + if (i == 0) continue; + List r = source2.get(i); + Row outRow = outSheet.createRow(++rowIndex); + //年份,总量分类,区域分类,总量数值,区域数值,行政区划,上级行政区划 + ExcelKit.putData(outRow, new ArrayList<>(Arrays.asList(r.getFirst(), "", areaName, "", + r.get(k + 1), cityName, "云南省")), dataStyle); + } + } + } + } + } + //保存文件 + ExcelKit.saveExcel(excelPath, outWorkbook); + System.out.println("市州所有文件处理完成!"); + } +} diff --git a/src/main/java/com/dsideal/base/Tools/FillData/City/C7_Test.java b/src/main/java/com/dsideal/base/Tools/FillData/City/C7_Test.java new file mode 100644 index 00000000..df213715 --- /dev/null +++ b/src/main/java/com/dsideal/base/Tools/FillData/City/C7_Test.java @@ -0,0 +1,57 @@ +package com.dsideal.base.Tools.FillData.City; + +import cn.hutool.core.io.FileUtil; +import com.dsideal.base.Tools.FillData.ExcelKit.ExcelKit; +import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; +import com.dsideal.base.Tools.Util.ReadDocxUtil; +import org.apache.poi.openxml4j.exceptions.InvalidFormatException; +import org.apache.poi.openxml4j.util.ZipSecureFile; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.xssf.usermodel.XSSFCellStyle; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.apache.poi.xwpf.usermodel.XWPFChart; +import org.apache.poi.xwpf.usermodel.XWPFDocument; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class C7_Test { + + //示例Excel + static String sampleExcelPath = "D:\\dsWork\\YunNanDsBase\\Doc\\待处理\\市\\【7】概览\\概览.xlsx"; + + //源文件 + String sourceExcel="D:\\dsWork\\YunNanDsBase\\Doc\\待处理\\市\\【7】概览\\(昭通市)汇总表.xls"; + public static void main(String[] args) throws IOException, InvalidFormatException { + //初始化数据库连接 + LocalMysqlConnectUtil.Init(); + //实例化 + ReadDocxUtil ru = new ReadDocxUtil(); + + //目标Excel,就是把文件名解析出来后,后面添加上【成果】,需要动态计算获取,不能写死 + String excelPath = sampleExcelPath.replace(".xlsx", "【成果】.xlsx"); + ExcelKit.delExcel(excelPath); + + //结果Excel + XSSFWorkbook outWorkbook = new XSSFWorkbook(); + //结果Sheet + XSSFSheet outSheet = ExcelKit.CreateSheet(outWorkbook); + //样式 + XSSFCellStyle headerStyle = ExcelKit.getHeaderStyle(outWorkbook); + XSSFCellStyle dataStyle = ExcelKit.getDataStyle(outWorkbook); + + //拷贝文件头 + ExcelKit.CopyHead(sampleExcelPath, outSheet, headerStyle); + + + //保存文件 + ExcelKit.saveExcel(excelPath, outWorkbook); + System.out.println("市州所有文件处理完成!"); + } +} diff --git a/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java b/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java index 7c12aae5..cdb09d73 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/ExcelKit/ExcelKit.java @@ -275,4 +275,33 @@ public class ExcelKit { outWorkbook.write(fileOut); outWorkbook.close(); } + /** + * 将 excel 中的字母列索引转换为数字列索引 + * + * @param letterColIdx 字母列索引 + * @return rlt 返回字母列索引对应的数字索引 A -> 0 BA -> 52 CA -> 78 + */ + public static long transLetter2Num(String letterColIdx) { + long rlt = 0; + letterColIdx = letterColIdx.toUpperCase(); + String[] sts = letterColIdx.split(""); + int length = sts.length; + for (int i = 0; i < length; i++) { + String st = sts[i]; + char[] cs = st.toCharArray(); + + int idx = cs[0]; + + // 如果字符不是 A-Z 之间的字符, 则抛错 + if (idx < 65 || idx > 90) { + System.out.println("Characters[" + st + "] not between A and Z."); + return -1; + } + + idx -= 64; + long num = (long) (idx * Math.pow(26, length - i - 1)); + rlt += num; + } + return --rlt; + } } diff --git a/src/main/java/com/dsideal/base/Tools/FillData/Test/ExcelColumnIndex.java b/src/main/java/com/dsideal/base/Tools/FillData/Test/ExcelColumnIndex.java new file mode 100644 index 00000000..925e501f --- /dev/null +++ b/src/main/java/com/dsideal/base/Tools/FillData/Test/ExcelColumnIndex.java @@ -0,0 +1,16 @@ +package com.dsideal.base.Tools.FillData.Test; + +import com.dsideal.base.Tools.FillData.ExcelKit.ExcelKit; + +public class ExcelColumnIndex { + + + + public static void main(String[] args) { + + for (char i = 'A'; i <= 'Z'; i++) { + for (char j = 'A'; j <= 'Z'; j++) + System.out.println(i +""+ j + ": " + ExcelKit.transLetter2Num(i +""+ j)); + } + } +} \ No newline at end of file