|
|
|
@ -478,33 +478,8 @@ public class ExcelKit {
|
|
|
|
|
//如果达到目标预期的数量,就直接返回poi获取的数据列表
|
|
|
|
|
int totalRow = data.size() + skipRowCount;
|
|
|
|
|
if (totalRow < expectLimit) {
|
|
|
|
|
System.out.println("期望数量>=" + expectLimit + ",现在只有" + totalRow + "条,理解为POI读取WORD图表存在问题,使用Python进行二次获取数据...");
|
|
|
|
|
// 留出足够的com关闭word的时间长度,否则会有异常
|
|
|
|
|
Thread.sleep(3000);
|
|
|
|
|
//否则调用python+com进行再次获取数据列表,这次获取的可能才是对的
|
|
|
|
|
//写入交互文本文件
|
|
|
|
|
ExcelKit.callPythonPrepare(docPath, chartNumber);
|
|
|
|
|
//对图表进行读取
|
|
|
|
|
ExcelKit.callPythonRead();
|
|
|
|
|
//读取生成的EXCEL,使用POI就可以了
|
|
|
|
|
//使用POI
|
|
|
|
|
int skipRows = 1; // 假设我们要跳过第一行
|
|
|
|
|
data = ExcelKit.readExcelToList(ExcelKit.excelPath, skipRows);
|
|
|
|
|
System.out.println("二次获取数据条目数量:" + data.size() + ",期望数量=" + expectLimit);
|
|
|
|
|
|
|
|
|
|
//处理数据data
|
|
|
|
|
//第一行认为是标准长度,从后往前找,发现长度小于第一行长度的就remove掉
|
|
|
|
|
if(data.isEmpty()) return data;
|
|
|
|
|
int firstRowLength = data.getFirst().size();
|
|
|
|
|
System.out.println("第一行长度:" + firstRowLength);
|
|
|
|
|
for (int i = data.size() - 1; i >= 0; i--) {
|
|
|
|
|
List<String> rowData = data.get(i);
|
|
|
|
|
if (rowData.size() < firstRowLength) {
|
|
|
|
|
data.remove(i);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
System.out.println("期望数量>=" + expectLimit + ",现在有" + totalRow + "条,理解为数据读取正确,直接返回POI获取的数据列表...");
|
|
|
|
|
System.out.println("怎么能小于预期目标:" + expectLimit + "呢,请人为检查!");
|
|
|
|
|
System.exit(0);
|
|
|
|
|
}
|
|
|
|
|
return data;
|
|
|
|
|
}
|
|
|
|
@ -543,7 +518,7 @@ public class ExcelKit {
|
|
|
|
|
List<List<String>> dataList = new ArrayList<>();
|
|
|
|
|
FileInputStream fis = new FileInputStream(filePath);
|
|
|
|
|
Workbook workbook = new XSSFWorkbook(fis);
|
|
|
|
|
if(sheetIndex >= workbook.getNumberOfSheets()){
|
|
|
|
|
if (sheetIndex >= workbook.getNumberOfSheets()) {
|
|
|
|
|
return dataList;
|
|
|
|
|
}
|
|
|
|
|
Sheet sheet = workbook.getSheetAt(sheetIndex);
|
|
|
|
@ -594,7 +569,7 @@ public class ExcelKit {
|
|
|
|
|
List<String> rowData = dataList.get(i);
|
|
|
|
|
if (rowData.isEmpty()) {
|
|
|
|
|
dataList.remove(i);
|
|
|
|
|
}else if(rowData.getFirst()==null || !rowData.getFirst().matches("[0-9]+")){
|
|
|
|
|
} else if (rowData.getFirst() == null || !rowData.getFirst().matches("[0-9]+")) {
|
|
|
|
|
dataList.remove(i);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|