Browse Source

模板验证

develop
wangsixiang 8 months ago
parent
commit
82bc5de23e
  1. 349
      zc-business/src/main/java/com/zc/business/service/impl/DcSdhsEventServiceImpl.java

349
zc-business/src/main/java/com/zc/business/service/impl/DcSdhsEventServiceImpl.java

@ -426,50 +426,55 @@ public class DcSdhsEventServiceImpl implements IDcSdhsEventService {
// }else {
// title="事故路段分布图-济南方向";
// }
PoiUtil.createHeading2(doc, title);
XWPFTable table = doc.createTable(map.size()+1,2);
//列宽自动分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber()));
//插入表头
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "路段");
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "事故发生数量");
List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
//excel
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey());
setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString());
}
try{
// 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CHAR_SECTION.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"数量"};
//分类信息
if (map != null && map.size() != UniversalEnum.ZERO.getNumber()){
PoiUtil.createHeading2(doc, title);
XWPFTable table = doc.createTable(map.size()+1,2);
//列宽自动分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber()));
//插入表头
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "路段");
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "事故发生数量");
List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
//excel
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ZERO.getNumber()).setCellValue(entries.get(i).getKey());
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ONE.getNumber()).setCellValue(Long.parseLong(entries.get(i).getValue().toString()));
setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey());
setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString());
}
for (int i = sheet.getLastRowNum(); i > entries.size();i--){
sheet.removeRow(sheet.getRow(i));
try{
// 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CHAR_SECTION.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"数量"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ZERO.getNumber()).setCellValue(entries.get(i).getKey());
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ONE.getNumber()).setCellValue(Long.parseLong(entries.get(i).getValue().toString()));
}
for (int i = sheet.getLastRowNum(); i > entries.size();i--){
sheet.removeRow(sheet.getRow(i));
}
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet );
// 追加到同一个Word文档中
mergeChart(chart,doc);
// 关闭复制的模板文档
copiedTemplate.close();
}catch (Exception e){
e.printStackTrace();
}
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet );
// 追加到同一个Word文档中
mergeChart(chart,doc);
// 关闭复制的模板文档
copiedTemplate.close();
}catch (Exception e){
e.printStackTrace();
}else {
addDescription(doc, UniversalEnum.NO_DATA_AVAILABLE.getValue());
}
}
//事故类型分析导出
@Override
@ -482,50 +487,54 @@ public class DcSdhsEventServiceImpl implements IDcSdhsEventService {
// }else {
// title="事件类型分布图-济南方向";
// }
PoiUtil.createHeading2(doc, title);
XWPFTable table = doc.createTable(map.size()+1,2);
//列宽自动分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber()));
//插入表头
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "类型");
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "数量");
List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
//excel
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey());
setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString());
}
try{
// 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.TYPE_ANALYSIS.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"事件类型"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ZERO.getNumber()).setCellValue(entries.get(i).getKey());
sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ONE.getNumber()).setCellValue(Long.parseLong(entries.get(i).getValue().toString()));
if (map != null && map.size() != UniversalEnum.ZERO.getNumber()) {
PoiUtil.createHeading2(doc, title);
XWPFTable table = doc.createTable(map.size() + 1, 2);
//列宽自动分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber()));
//插入表头
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "类型");
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "数量");
List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
//excel
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++) {
setTableFonts(table.getRow(i + 1).getCell(0), entries.get(i).getKey());
setTableFonts(table.getRow(i + 1).getCell(1), entries.get(i).getValue().toString());
}
for (int i = sheet.getLastRowNum(); i > entries.size();i--){
sheet.removeRow(sheet.getRow(i));
try {
// 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.TYPE_ANALYSIS.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"事件类型"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++) {
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ZERO.getNumber()).setCellValue(entries.get(i).getKey());
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ONE.getNumber()).setCellValue(Long.parseLong(entries.get(i).getValue().toString()));
}
for (int i = sheet.getLastRowNum(); i > entries.size(); i--) {
sheet.removeRow(sheet.getRow(i));
}
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames, sheet);
// 追加到同一个Word文档中
mergeChart(chart, doc);
// 关闭复制的模板文档
copiedTemplate.close();
} catch (Exception e) {
e.printStackTrace();
}
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet );
// 追加到同一个Word文档中
mergeChart(chart,doc);
// 关闭复制的模板文档
copiedTemplate.close();
}catch (Exception e){
e.printStackTrace();
}else {
addDescription(doc, UniversalEnum.NO_DATA_AVAILABLE.getValue());
}
}
//事故拥堵时间导出
@ -533,50 +542,54 @@ public class DcSdhsEventServiceImpl implements IDcSdhsEventService {
public void accidentCongestedTimeExport(XWPFDocument doc, DcSdhsEventQuery dcSdhsEventQuery) {
Map<String, String> map =accidentCongestedTime(dcSdhsEventQuery);
String title="事故拥堵时长分布图";
PoiUtil.createHeading2(doc, title);
XWPFTable table = doc.createTable(map.size()+1,2);
//列宽自动分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber()));
//插入表头
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "路段");
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "时长(分钟)");
List<Map.Entry<String, String>> entries = new ArrayList<>(map.entrySet());
//excel
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey());
setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString());
}
try{
// 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CONGESTION_TIME.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"事故拥堵时长"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(0).setCellValue(entries.get(i).getKey());
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(1).setCellValue(Double.valueOf(entries.get(i).getValue()));
if (map != null && map.size() != UniversalEnum.ZERO.getNumber()) {
PoiUtil.createHeading2(doc, title);
XWPFTable table = doc.createTable(map.size() + 1, 2);
//列宽自动分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber()));
//插入表头
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "路段");
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "时长(分钟)");
List<Map.Entry<String, String>> entries = new ArrayList<>(map.entrySet());
//excel
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++) {
setTableFonts(table.getRow(i + 1).getCell(0), entries.get(i).getKey());
setTableFonts(table.getRow(i + 1).getCell(1), entries.get(i).getValue().toString());
}
for (int i = sheet.getLastRowNum(); i > entries.size();i--){
sheet.removeRow(sheet.getRow(i));
try {
// 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CONGESTION_TIME.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"事故拥堵时长"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++) {
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(0).setCellValue(entries.get(i).getKey());
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(1).setCellValue(Double.valueOf(entries.get(i).getValue()));
}
for (int i = sheet.getLastRowNum(); i > entries.size(); i--) {
sheet.removeRow(sheet.getRow(i));
}
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames, sheet);
// 追加到同一个Word文档中
mergeChart(chart, doc);
// 关闭复制的模板文档
copiedTemplate.close();
} catch (Exception e) {
e.printStackTrace();
}
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet );
// 追加到同一个Word文档中
mergeChart(chart,doc);
// 关闭复制的模板文档
copiedTemplate.close();
}catch (Exception e){
e.printStackTrace();
}else {
addDescription(doc, UniversalEnum.NO_DATA_AVAILABLE.getValue());
}
}
//事故拥堵地点导出
@ -584,50 +597,54 @@ public class DcSdhsEventServiceImpl implements IDcSdhsEventService {
public void accidentCongestedLocationExport(XWPFDocument doc, DcSdhsEventQuery dcSdhsEventQuery) {
Map<String, Integer> map =accidentCongestedLocation(dcSdhsEventQuery);
String title="事故拥堵地点分布图";
PoiUtil.createHeading2(doc, title);
XWPFTable table = doc.createTable(map.size()+1,2);
//列宽自动分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber()));
//插入表头
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "地点");
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "数量");
List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
//excel
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey());
setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString());
}
try{
// 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CONGESTED_LOCATION.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"事故拥堵地点"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(0).setCellValue(entries.get(i).getKey());
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(1).setCellValue(entries.get(i).getValue());
if (map != null && map.size() != UniversalEnum.ZERO.getNumber()) {
PoiUtil.createHeading2(doc, title);
XWPFTable table = doc.createTable(map.size() + 1, 2);
//列宽自动分割
CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW();
infoTableWidth.setType(STTblWidth.DXA);
infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber()));
//插入表头
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "地点");
setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "数量");
List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
//excel
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++) {
setTableFonts(table.getRow(i + 1).getCell(0), entries.get(i).getKey());
setTableFonts(table.getRow(i + 1).getCell(1), entries.get(i).getValue().toString());
}
for (int i = sheet.getLastRowNum(); i > entries.size();i--){
sheet.removeRow(sheet.getRow(i));
try {
// 复制Word模板
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CONGESTED_LOCATION.getValue());
XWPFDocument copiedTemplate = new XWPFDocument(inputStream);
//获取word中所有图表对象
List<XWPFChart> charts = copiedTemplate.getCharts();
XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber());
XSSFWorkbook workbook = chart.getWorkbook();
XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber());
//系列信息
String[] singleBarSeriesNames = {"事故拥堵地点"};
//分类信息
for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++) {
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(0).setCellValue(entries.get(i).getKey());
sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(1).setCellValue(entries.get(i).getValue());
}
for (int i = sheet.getLastRowNum(); i > entries.size(); i--) {
sheet.removeRow(sheet.getRow(i));
}
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames, sheet);
// 追加到同一个Word文档中
mergeChart(chart, doc);
// 关闭复制的模板文档
copiedTemplate.close();
} catch (Exception e) {
e.printStackTrace();
}
PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet );
// 追加到同一个Word文档中
mergeChart(chart,doc);
// 关闭复制的模板文档
copiedTemplate.close();
}catch (Exception e){
e.printStackTrace();
}else {
addDescription(doc, UniversalEnum.NO_DATA_AVAILABLE.getValue());
}
}

Loading…
Cancel
Save