From 82ac723fa7e236b595bb952e8d4013aed0571c28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Mon, 11 Nov 2024 11:31:50 +0800 Subject: [PATCH] 'commit' --- ...前教育入园总量变化及预测.xlsx | Bin 12429 -> 12429 bytes ...园总量变化及预测【成果】.xlsx | Bin 3509 -> 4027 bytes .../dsideal/base/Tools/FillData/City/C1.java | 170 ++++++++++-------- 3 files changed, 98 insertions(+), 72 deletions(-) diff --git a/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测.xlsx b/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测.xlsx index b2912c0e8493c277a8a9d918e9d552d70dc3d139..5c03af9137cc1eafb2b5c002f537dd6b4939dd9c 100644 GIT binary patch delta 177 zcmeB8>`mke@MdNaVc_84V0at7k!K%jCj zjt5*I^)rOyS%LK8pAt+U?r$kAu(Z0&Y(XG@@)2Eo5XGuz4x;SzY(P|vo-K<p}F- dqvrsY)3*dsmHJ@8UHaA_-gkXB5M^)R2LR}FLX7|b delta 177 zcmeB8>`mke@MdNaVc_84VAvh8k!K%jCj zjt5*I^)rOyS%LK8pAt+U?r$kAu(Z0&Y(XG@@)2Eo5XGuz4x;SzY(P|vo-K<p}F- dqvrsY)3*dsmHJ@8UHaA_-gkXB5M^)R2LN*RJ^ugz diff --git a/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测【成果】.xlsx b/Doc/待处理/市/【1】学前教育入园总量变化及预测/学前教育入园总量变化及预测【成果】.xlsx index 7d9c52b722eb0c9068139cfa6c48fa728b3c5517..d365efe7bb22ebed534f78f97e4225e7d4615147 100644 GIT binary patch delta 2140 zcmY*a3pmqj7~jooV7gd*1K;e((4G-b)Rp9;@!*4uxrh5C{ZF z&a70A1ViLZ!3D6PQu6a4-AWM-C89G6t~ojkI;N^@3lr(^E1~*8owNPb(_ao%6yy+y z=G#om45`wd1o4{9g{yWPO4TnD#T&ZUg;*`W-aq`3nXq+YWuy=+*+op>g z+qDkS6^9#jt?i>#ced}9tW0&R1Yhu!6vt0E#3 ztHCfZ2vo7K7YFB<4`|WS=C{N2fN1_UH!(#!ekSfTLa>2P{f%nosu#Dq2YUWgF!XUA zt6-=K74&KhAz8uV^VZ!qJAgtSvizxWT;+ zaR0t)T|p%G)ahF37BA%9y-`nip0q(Kteu@AVNJ!{JZ`lu(RjPPID!ipI#jQ>9_fSA zOpX^=b$V4@XSuF=cGSDA;hLoA4@_!OUSguZ&@S`%4Pzp$DZIzu7K;2W{Z0t>@DxgXVNdCi# zo(thW0R5E$zC;BJ)OgW${Ylbj+&e^OG+m!KuI6Bl46?KuGf0X2isQEwlT8LMYR1^F zJ5_}-N6dwHTsrvjY}S-rM>)LgxxF2+%tA58X*Edi?0;IV(p)c#X?VT&T}Q&737#UF zs)j!P5-~#00l4AcG)7Sag3gi@1(iE5a^0n@rqjkjyG+V}s>ea$S%E9jM7BW6T)w4b z;^q0c@(Ayd%eKx(#9AIBf5*zyc=?_oE+wT^$*#M_pl}fpvCd)p;b<+l54SGGIJn#5 zBDPaXIYWVgrKTkJ`n*8E;2 zt17W!!}FR@fLxxbua~4BI-D79n;iCX?ozkM4a)!s>Q?aPB+>Mp8f3BW*m;vK zA8Y5lD!Vfib>fajKEL6W7kz)X>yLh`+HW&VDl+S&iknPh+?j1RX1n5RPX(v2S<1;Y zki~Coouvj=xvG6Sc;9T2Cod#d`EO@`1Za&hj^Aew6tQwA`|j0vxipL-6^6oH*+jQm zCvhxeD&Q4>_OO^6y{^4vFSq2?Dqq}-DyDgI!!E^P^>0k!Agpg7~ia$ z7bxDU@+-xH997+)JxGZ7w+Hnh@xbNl?kDb$G`N$Na)8owBI50S@Sec1Q%fz&rqAGB z!=7{f-+=f1GsleNl3>u%z+YCm|-v!h|(aB#{n^n}#ek`(H%_>R)Mot=3pVutRu$}!`Tpsfk#CJO4klSFrj>*j;11$oAwG^lFXLA@a`4 zANq8Lywl~aQmVY9AiS1-b3R`9jGD&klDXdHjX8~IduNREmm9V0oY7`K>yqUG{ht(u zgZsG?R#tzjDii%vwy;3}0f7e4%0vf4v_bz(TmEr1vU0qZt8Gw<_i9^^a^^9gpYw-r zrM@1kJS}d8+Kc872vo|CQ#WNQ?<}sR1(ZdL3aEJ9Fx9vTm4{dD0U;(wGC delta 1650 zcmdljzg3ziz?+#xgn@&DgJE~XMxH80rri;nI~b)v^yDQ>=Rs5{vp%oyrKpJ)$^=s# z17Zq}PTt5YQE%>UyQus_;)Z1hb(TvsP7LE+mi^&z-R#%|kwpexJ=YwXdymfEHm%S5 zb>j22%<}9U8ks&1E}8D=zgXzh^v1D!g8HE)AC6Y(CRP3Fvrvq8WnZ%3%bbi3r%sI% zI%n==9Z_F8Y4xSOKMMslJQG-W)z}Udxz*j^h-L+kz?@ry6S^%b}M&&QBcyD!eUdmW6Q+%Pgd^PbuYg#`obffWSzOTx|VAzLT#@< z3IDJ2XIJ$7xMi(h8p^(#8*iVM{VDzITlD~Mb`D3uoOo7728Inlj2t@Ikqk&+@-Y^P z`pp~HpEw(+;jOE6?#%hkp+;AX1A;uxdY|(@dB%HtC>L+x<*fmmwm*KlNmEZR(Bqu` zS?!IXM&UskXHV1Krl_OIg^<23!>5fdTGBdOB-#bUn*r;09&wk`%JzHq^a_j9jH}_t5+kfPo zo4g8>VC}UHzf-IKU+&xXT)KSmY1_9qzn1)~c~c}%dwyA7#jOqOyY1c->5F}{nY~GV z$)aSTU3VtS#-1M^o(bJ|$TbgSB$}s7!HY?pOo+IDa|JGuHPPFEQKFQNt zy*}26B_9b{s2LvGHUIk0qq=cv&(k|g=O(P4W!SFZd{gB5In(mMlx&eXvD`#wPJ6k(h zc#D79uYG-<|5sn@|MOj_nR$7PfnwOauR-tntN7gSPSd#aQvKC><4@ZYOA_syrBj?9 zd|jU9Sgln3Q#H$7jzSuj)T;!~4b=0^9v%r`48)hWNfe^!mv;Uf=Z>-2A0 zgCf!S?1DE_fe|>F1vM#ecI6NQ=k!=kNKUWh(yC9LYnP%7>w$n&tLdwH z9=<0Cx36`aSnle3 z_PArgacM=-dX+#u>5zTO#t}z0aHP)`s1PcBv;9c(UvcC6R#&TDAN7`NmY(SHtI;&A z#c%S>h3lU+e=0RUJ3G-*EGhi*ZabUBI@(={HeXjSJM<{%y1mizQ%_^mZbx1^JJTxu z?%i!dDw9sUU^YIdx!vtqv+Ijvod=mVAAe)VskE>Baf-;)l#<$M16L#ztxRYCF_A|p(+p9)&*_2b8LMDGcYkTfR9oL!*vo2JaGKTGp zFAy{pyApWd%*DrgYIo;l{dJDBi~ht8ii7_W^|u3oaj<|16bFnK(5Q=kAE?NN{O1*_h8v9>hb=l_E%`5d*{8$sK&k3LrJe zkv<|ymr(|pn((_iq(*iU6=V5rE^FV8Q^PRh^E)~m?PL3dvpv-QL)KqHKSZkIwa iYAwg)TuzzE@%%hsJCQvpfuisv=j3jFEw%)1kSG8c+p!D) diff --git a/src/main/java/com/dsideal/base/Tools/FillData/City/C1.java b/src/main/java/com/dsideal/base/Tools/FillData/City/C1.java index 96dfd302..73d71a31 100644 --- a/src/main/java/com/dsideal/base/Tools/FillData/City/C1.java +++ b/src/main/java/com/dsideal/base/Tools/FillData/City/C1.java @@ -5,9 +5,7 @@ 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.BorderStyle; -import org.apache.poi.ss.usermodel.Cell; -import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.xssf.usermodel.XSSFCellStyle; import org.apache.poi.xssf.usermodel.XSSFFont; @@ -34,9 +32,9 @@ public class C1 { //目标Excel,就是把文件名解析出来后,后面添加上【成果】,需要动态计算获取,不能写死 String excelPath = sampleExcelPath.replace(".xlsx", "【成果】.xlsx"); //如果目录文件存在,则删除 - File file = new File(excelPath); - if (file.exists()) { - file.delete(); + File fi = new File(excelPath); + if (fi.exists()) { + fi.delete(); } //目标Excel @@ -47,11 +45,23 @@ public class C1 { XSSFFont font = outWorkbook.createFont(); font.setBold(true); // 设置字体加粗 headerStyle.setFont(font); + // 设置边框样式 + headerStyle.setBorderTop(BorderStyle.THIN); + headerStyle.setBorderBottom(BorderStyle.THIN); + headerStyle.setBorderLeft(BorderStyle.THIN); + headerStyle.setBorderRight(BorderStyle.THIN); + // 设置水平和垂直居中 + headerStyle.setAlignment(HorizontalAlignment.CENTER); + headerStyle.setVerticalAlignment(VerticalAlignment.CENTER); + XSSFCellStyle dataStyle = outWorkbook.createCellStyle(); dataStyle.setBorderTop(BorderStyle.THIN); // 上边框 dataStyle.setBorderBottom(BorderStyle.THIN); // 下边框 dataStyle.setBorderLeft(BorderStyle.THIN); // 左边框 dataStyle.setBorderRight(BorderStyle.THIN); // 右边框 + // 设置水平和垂直居中 + dataStyle.setAlignment(HorizontalAlignment.CENTER); + dataStyle.setVerticalAlignment(VerticalAlignment.CENTER); //先把样例的第一行复制到目标输出Excel的第一行中去 Row firstRow = outSheet.createRow(0); @@ -61,85 +71,101 @@ public class C1 { XSSFSheet sampleSheet = sampleWorkbook.getSheet("Sheet1"); Row firstSampleRow = sampleSheet.getRow(0); for (Cell cell : firstSampleRow) { - Cell outCell=firstRow.createCell(cell.getColumnIndex()); + Cell outCell = firstRow.createCell(cell.getColumnIndex()); outCell.setCellValue(ExcelReader.readCell(cell)); outCell.setCellStyle(headerStyle); // 应用加粗样式 } sampleWorkbook.close(); + //开始读取市州word文档 + String parentPath = "D:\\dsWork\\YunNanDsBase\\Doc\\全省及州市县区人口与教育报告集20241023\\16个州市报告2022\\分析报告20240510"; + + //找到parentPath下一级目录中所有文件 + File[] files = new File(parentPath).listFiles(); + //处理这个目录 + 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("~")) { + //读取文件 + String inputUrl = file.getAbsolutePath(); + InputStream is = new FileInputStream(inputUrl); + ZipSecureFile.setMinInflateRatio(-1.0d); + XWPFDocument doc = new XWPFDocument(is); + + //图表 + List charts = doc.getCharts(); + + //1号模板,数据在图表5和28中 + XWPFChart chart5 = charts.get(4); + XSSFWorkbook workbook = chart5.getWorkbook(); + XSSFSheet sheet = workbook.getSheet("Sheet1"); + //遍历输出sheet的内容 + int rowIndex = 0; + Row outRow; + for (Row row : sheet) { + //遍历row中每一列,中间以tab隔开,然后换行 + + + rowIndex++; + if (rowIndex == 1) { + continue; + } + //年份 + int columnIndex = 0; + String value = ExcelReader.readCell(row.getCell(columnIndex)); + outRow = outSheet.createRow(rowIndex - 1); + outRow.createCell(columnIndex).setCellValue(value); + outRow.getCell(columnIndex).setCellStyle(dataStyle); + //总量分类 + columnIndex = 1; + outRow.createCell(columnIndex).setCellValue("总入园数"); + outRow.getCell(columnIndex).setCellStyle(dataStyle); + //区域分类 + columnIndex = 2; + outRow.createCell(columnIndex).setCellValue(""); + outRow.getCell(columnIndex).setCellStyle(dataStyle); -// //开始读取市州word文档 -// String parentPath = "D:\\dsWork\\YunNanDsBase\\Doc\\全省及州市县区人口与教育报告集20241023\\16个州市报告2022\\分析报告20240510"; -// -// //找到parentPath下一级目录中所有文件 -// File[] files = new File(parentPath).listFiles(); -// //处理这个目录 -// 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("~")) { -// //读取文件 -// String inputUrl = file.getAbsolutePath(); -// InputStream is = new FileInputStream(inputUrl); -// ZipSecureFile.setMinInflateRatio(-1.0d); -// XWPFDocument doc = new XWPFDocument(is); -// -// //图表 -// List charts = doc.getCharts(); -// -// //1号模板,数据在图表5和28中 -// XWPFChart chart5 = charts.get(4); -// XSSFWorkbook workbook = chart5.getWorkbook(); -// XSSFSheet sheet = workbook.getSheet("Sheet1"); -// //遍历输出sheet的内容 -// int rowIndex = 0; -// Row outRow; -// for (Row row : sheet) { -// rowIndex++; -// if (rowIndex == 1) { -// int columnIndex = 0; -// outRow = outSheet.createRow(rowIndex); -// //将表头也复制过去 -// for (Cell cell : row) { -// outRow.createCell(columnIndex).setCellValue(ExcelReader.readCell(cell)); -// columnIndex++; -// } -// continue; -// } -// //年份 -// int columnIndex = 0; -// String value = ExcelReader.readCell(row.getCell(columnIndex)); -// outRow = outSheet.createRow(rowIndex); -// outRow.createCell(columnIndex).setCellValue(value); -// //行政区划 -// columnIndex = 6; -// outRow.createCell(columnIndex).setCellValue(cityName); -// //上级行政区划 -// columnIndex = 7; -// outRow.createCell(columnIndex).setCellValue("云南省"); -// } -// workbook.close(); -// -// break; -// //XWPFChart chart28 = charts.get(27); -// } -// } -// } + //总量数值 + columnIndex = 3; + value = ExcelReader.readCell(row.getCell(4)); + outRow.createCell(columnIndex).setCellValue(value); + outRow.getCell(columnIndex).setCellStyle(dataStyle); + + //区域数值 + columnIndex = 4; + outRow.createCell(columnIndex).setCellValue(""); + outRow.getCell(columnIndex).setCellStyle(dataStyle); + + //行政区划 + columnIndex = 5; + outRow.createCell(columnIndex).setCellValue(cityName); + outRow.getCell(columnIndex).setCellStyle(dataStyle); + //上级行政区划 + columnIndex = 6; + outRow.createCell(columnIndex).setCellValue("云南省"); + outRow.getCell(columnIndex).setCellStyle(dataStyle); + } + workbook.close(); + + break; + //XWPFChart chart28 = charts.get(27); + } + } + } //保存Excel //设置行的高度=28,列的宽度为自动 outSheet.setDefaultColumnWidth(20); outSheet.setDefaultRowHeight((short) 500); - - FileOutputStream fileOut = new FileOutputStream(excelPath); outWorkbook.write(fileOut); outWorkbook.close();