From bce3ed8cfae1da18f9b75f70bdc533d9605f49aa Mon Sep 17 00:00:00 2001
From: 林致杰 <1003392067@qq.com>
Date: 星期一, 15 八月 2022 23:28:31 +0800
Subject: [PATCH] 修复文本数值问题,增加排序
---
src/main/java/com/ots/project/tool/report/MAQTR/chart/MAQTRChart.java | 53 ++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 44 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/ots/project/tool/report/MAQTR/chart/MAQTRChart.java b/src/main/java/com/ots/project/tool/report/MAQTR/chart/MAQTRChart.java
index 068f2bc..41f212c 100644
--- a/src/main/java/com/ots/project/tool/report/MAQTR/chart/MAQTRChart.java
+++ b/src/main/java/com/ots/project/tool/report/MAQTR/chart/MAQTRChart.java
@@ -9,6 +9,7 @@
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ooxml.POIXMLDocument;
import org.apache.poi.ooxml.POIXMLDocumentPart;
+import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
@@ -36,7 +37,7 @@
OutputStream os = new FileOutputStream("C:\\Users\\澶уご\\Desktop\\MAQ缁勫埆鎶ュ憡\\鏋梍PAQ_IA_CN2.docx");
XWPFDocument document = new XWPFDocument(POIXMLDocument.openPackage("C:\\Users\\澶уご\\Desktop\\MAQ缁勫埆鎶ュ憡\\缁堢銆�0607涓枃鐗堛�慚AQ缁勫埆瀵规瘮鎶ュ憡(1).docx"));
- String fileName = "C:\\Users\\澶уご\\Desktop\\MAQ缁勫埆鎶ュ憡\\MAQ缁勫埆瀵煎叆鏁版嵁妯℃澘 (2).xlsx";
+ String fileName = "C:\\Users\\澶уご\\Desktop\\MAQ缁勫埆鎶ュ憡\\MAQ缁勫埆瀵煎叆鏁版嵁妯℃澘 -3缁�(1).xlsx";
//鍙樻洿鍥捐〃鏁版嵁
changeMAQTRChart(document,fileName);
document.write(os);
@@ -54,10 +55,10 @@
*/
public static Map<String,Map<Integer,Double>> replaceContent(String fileName){
//骞冲潎鍊奸泦鍚�
- Map<String,Map<Integer,Double>> averageMap = new HashMap<>();
+ Map<String,Map<Integer,Double>> averageMap = new TreeMap<>();
try {
XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(fileName));
- Map<String,Map<Integer,List<Double>>> dataMap = new HashMap<>();
+ Map<String,Map<Integer,List<Double>>> dataMap = new TreeMap<>();
for (int i = 0; i < wb.getNumberOfSheets(); i++) {
XSSFSheet sheet = wb.getSheetAt(i);
String companyName = sheet.getRow(1).getCell(0).getStringCellValue();
@@ -67,7 +68,7 @@
//琛�
for (int j = 1; j <= sheet.getLastRowNum(); j++) {
XSSFRow row = sheet.getRow(j);
- if(row == null){
+ if(isEmptyRow(row)){
break;
}
//鍒�
@@ -77,16 +78,27 @@
break;
}
//涓嶆槸鍒嗘暟 蹇界暐
- switch (cell.getCellType()) {
- case STRING:
- break;
+ Double cellValue = null;
+ try {
+ switch (cell.getCellType()) {
+ case STRING:
+ cellValue = Double.valueOf(cell.getStringCellValue());
+ break;
+ case NUMERIC:
+ cellValue = cell.getNumericCellValue();
+ break;
+ }
+ }catch (Exception e){
+ log.error("鑾峰彇鍒嗘暟澶辫触,{}"+e.getMessage());
+ e.printStackTrace();
}
+
//褰掔被涓��
if(map.get(k) != null){
- map.get(k).add(cell.getNumericCellValue());
+ map.get(k).add(cellValue);
}else {
List<Double> list = new ArrayList<>();
- list.add(cell.getNumericCellValue());
+ list.add(cellValue);
map.put(k,list);
}
}
@@ -466,6 +478,29 @@
}
/**
+ * 绌鸿鍒ゆ柇
+ * @param row
+ * @return
+ */
+ public static boolean isEmptyRow(XSSFRow row){
+ if(row == null || row.toString().isEmpty()){
+ return true;
+ }else{
+ Iterator<Cell> it = row.iterator();
+ boolean isEmpty = true;
+ while (it.hasNext()){
+ Cell cell = it.next();
+ if(cell.getCellType() != CellType.BLANK){
+ isEmpty = false;
+ break;
+ }
+ }
+ return isEmpty;
+ }
+ }
+
+
+ /**
* 鏇存柊鍥捐〃鐨勫叧鑱� excel
*
* @param seriesDatas
--
Gitblit v1.9.1