main
黄海 8 months ago
parent eca4ec83f7
commit a4fdb815f6

@ -6,6 +6,7 @@ import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil;
import com.dsideal.base.Tools.Util.ReadDocxUtil;
import com.jfinal.kit.StrKit;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
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;
@ -13,6 +14,7 @@ import org.dom4j.DocumentException;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class A9 {
@ -73,7 +75,7 @@ public class A9 {
if (flag) continue;
//只关心发展规模数据的表格
if (!file.getName().contains(fileNameKey)) continue;
//县区名称
//县区名称
String areaName = ru.getAreaName(file.getName());
//市州名称
String cityName = ru.getCityNameByAreaName(areaName);
@ -85,15 +87,60 @@ public class A9 {
//县区名称
System.out.println("正在进行" + cityName + "-" + areaName + "的数据填充~");
int chartNumber = 2;
List<List<String>> source2 =
ExcelKit.getChartData(file.getAbsolutePath(), chartNumber - 1, 0);
List<List<String>> source1 =
ExcelKit.getChartData(file.getAbsolutePath(), chartNumber , 0);
//需要处理下人与万人的单位兼容
int mul = 1;
if (source1 != null) {
//本例中要乘以多少呢?
String xmlPath = ExcelKit.DocxUnzipDirectory + "word\\charts\\chart" + chartNumber + ".xml";
mul = ExcelKit.getMul(xmlPath);
for (List<String> row : source1) {
String year = row.getFirst().split("\\.")[0];
Row outRow = outSheet.createRow(++rowIndex);
String q1 = row.get(1);
if (StrKit.isBlank(q1)) {
q1 = "0";
}
String v1 = String.format("%.2f", Double.parseDouble(q1) * mul / 10000);
String q2 = row.get(2);
if (StrKit.isBlank(q2)) {
q2 = "0";
}
String v2 = String.format("%.2f", Double.parseDouble(q2) * mul / 10000);
ExcelKit.putData(outRow, Arrays.asList(cityName, areaName, year, v1, "", v2, ""), dataStyle);
}
}
chartNumber = 3;
List<List<String>> source3 =
ExcelKit.getChartData(file.getAbsolutePath(), chartNumber - 1, 0);
ExcelKit.printTable(source2);
ExcelKit.printTable(source3);
List<List<String>> source2 =
ExcelKit.getChartData(file.getAbsolutePath(), chartNumber , 0);
if (source2 != null) {
//本例中要乘以多少呢?
String xmlPath = ExcelKit.DocxUnzipDirectory + "word\\charts\\chart" + chartNumber + ".xml";
mul = ExcelKit.getMul(xmlPath);
for (List<String> row : source2) {
String year = row.getFirst().split("\\.")[0];
Row outRow = outSheet.createRow(++rowIndex);
String q1 = row.get(1);
if (StrKit.isBlank(q1)) {
q1 = "0";
}
String v1 = String.format("%.2f", Double.parseDouble(q1) * mul / 10000);
String q2 = row.get(2);
if (StrKit.isBlank(q2)) {
q2 = "0";
}
String v2 = String.format("%.2f", Double.parseDouble(q2) * mul / 10000);
ExcelKit.putData(outRow, Arrays.asList(cityName, areaName, year, "", v1, "", v2), dataStyle);
}
}
}
}
//保存文件

Loading…
Cancel
Save