diff --git a/Doc/长春云校部署与开发.txt b/Doc/长春云校部署与开发.txt
new file mode 100644
index 00000000..73098edb
--- /dev/null
+++ b/Doc/长春云校部署与开发.txt
@@ -0,0 +1,26 @@
+A、方案
+二枢纽机房
+
+步骤:
+让申健把我们需要的数据写入到教学组的一台Mysql实例中,比如:
+host:10.10.15.178
+port:43306
+user:ccyx
+pwd:dsideal
+database:ccyx_statistics
+
+目前金阳给的VPN无法连接到我们当初部署的主机,已经联系白阅明进行检查维修,但不敢保证一定能到期修复。
+
+B、方案
+如果因服务器硬件或网络限制等原因,造成最终无法实现部署到二枢纽机房的话,另一个部署办法就是部署到华为政务云,这里有我们的服务器可以使用。
+
+采用www.ccsjy.cn的门户站主机:Windows+VPN的方式就可以连接到二枢纽的主机,将申健给出的数据进行读取后写入到部署到www.ccsjy.cn的DataEase或者MaxKB数据库中。
+
+https://10.10.200.18/ui/#/login
+
+
+AI教育助手
+1、提供李科长最常用的学校、班级数、教职工数、专任教师数、学生数的EXCEL表格下载。
+2、有关长春云校的统计分析EXCEL下载。
+3、长春云校的一些相关知识。
+4、长春云校课程建设情况的EXCEL下载,思维导图展示等。
diff --git a/pom.xml b/pom.xml
index de470025..fb39c0e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -204,6 +204,7 @@
poi-ooxml
5.2.5
+
org.jsoup
diff --git a/src/main/java/UnitTest/WordDocumentGenerator.java b/src/main/java/UnitTest/WordDocumentGenerator.java
new file mode 100644
index 00000000..44a525a4
--- /dev/null
+++ b/src/main/java/UnitTest/WordDocumentGenerator.java
@@ -0,0 +1,70 @@
+package UnitTest;
+
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.ss.util.CellReference;
+import org.apache.poi.xddf.usermodel.chart.*;
+import org.apache.poi.xwpf.usermodel.*;
+
+import java.io.*;
+import java.util.ArrayList;
+import java.util.List;
+
+public class WordDocumentGenerator {
+ public static void main(String[] args) throws Exception {
+ String templatePath = "D:\\word\\line-chart-template.docx";
+
+ InputStream is = new FileInputStream(templatePath);
+ XWPFDocument doc = new XWPFDocument(is);
+
+ //模拟统计图数据
+ //系列
+ String[] seriesTitles = {"日处理能力(kg)", "湿垃圾(kg)", "干垃圾(kg)"};
+ //x轴
+ String[] categories = {"2020-02-20", "2020-02-21", "2020-02-22", "2020-02-23", "2020-02-24", "2020-02-25", "2020-02-26"};
+ List values = new ArrayList<>();
+ //日处理能力
+ Number[] value1 = {1000, 1000, 1000, 1000, 1000, 1000, 1000};
+ //湿垃圾
+ Number[] value2 = {450.2, 622.1, 514, 384.7, 486.5, 688.9, 711.1};
+ //干垃圾
+ Number[] value3 = {200.2, 321.4, 266, 156.5, 232.2, 325.5, 319.5};
+
+ values.add(value1);
+ values.add(value2);
+ values.add(value3);
+
+ XWPFChart xChart = doc.getCharts().get(0);//获取第1个图表
+ generateChart(xChart, seriesTitles, categories, values);
+
+ try (FileOutputStream fos = new FileOutputStream("D:\\word\\test.docx")) {
+ doc.write(fos);
+ }
+
+ }
+
+ public static void generateChart(XWPFChart chart, String[] series, String[] categories, List values) {
+ String chartTitle = "收运量统计图";
+ final List data = chart.getChartSeries();//不知道这个ChartSeries代表什么意思
+ final XDDFLineChartData line = (XDDFLineChartData) data.get(0);//这里一般获取第一个,我们这里是折线图就是XDDFLineChartData
+
+ final int numOfPoints = categories.length;
+
+ final String categoryDataRange = chart.formatRange(new CellRangeAddress(1, numOfPoints, 0, 0));
+
+ final XDDFDataSource> categoriesData = XDDFDataSourcesFactory.fromArray(categories, categoryDataRange, 0);
+ for (int i = 0; i < values.size(); i++) {
+ final String valuesDataRange = chart.formatRange(new CellRangeAddress(1, numOfPoints, i + 1, i + 1));
+ Number[] value = values.get(i);
+ final XDDFNumericalDataSource extends Number> valuesData = XDDFDataSourcesFactory.fromArray(value, valuesDataRange, i + 1);
+ XDDFChartData.Series ser;//图表中的系列
+ ser = line.getSeries().get(i);
+ ser.replaceData(categoriesData, valuesData);
+ CellReference cellReference = chart.setSheetTitle(series[i], 1);//修改系列标题
+ ser.setTitle(series[i], cellReference);
+ }
+
+ chart.plot(line);
+ chart.setTitleText(chartTitle);//折线图标题
+ chart.setTitleOverlay(false);
+ }
+}
diff --git a/数据分析报告.docx b/数据分析报告.docx
new file mode 100644
index 00000000..359ecc2a
Binary files /dev/null and b/数据分析报告.docx differ
diff --git a/销售数据分析报告.docx b/销售数据分析报告.docx
new file mode 100644
index 00000000..efc5e886
Binary files /dev/null and b/销售数据分析报告.docx differ