diff --git a/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportContentServiceImpl.java b/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportContentServiceImpl.java index 55d5519..f34f5fe 100644 --- a/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportContentServiceImpl.java +++ b/adc-da-report/src/main/java/com/adc/da/report/service/impl/IReportContentServiceImpl.java @@ -109,7 +109,7 @@ public class IReportContentServiceImpl extends ServiceImpl //修改报表内容表(先删后增) iReportContentService.removeByReportId(reportId); try { - iReportContentService.insertReportContent(reportId); log.info("抽取reportId为{}报告内容", reportId); + iReportContentService.insertReportContent(reportId); count++; } catch (IOException e) { log.error("获取reportId为{}的报告内容失败", reportId); diff --git a/adc-da-report/src/main/java/com/adc/da/report/util/FileContentUtil.java b/adc-da-report/src/main/java/com/adc/da/report/util/FileContentUtil.java index ab7f22a..12049d1 100644 --- a/adc-da-report/src/main/java/com/adc/da/report/util/FileContentUtil.java +++ b/adc-da-report/src/main/java/com/adc/da/report/util/FileContentUtil.java @@ -3,6 +3,8 @@ package com.adc.da.report.util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.nio.charset.CharsetEncoder; +import java.nio.charset.StandardCharsets; import com.adc.da.report.constant.ReportConstants; import lombok.extern.slf4j.Slf4j; @@ -92,9 +94,21 @@ public class FileContentUtil { fis.close(); log.info("文件内容抽取失败,原因可能是上传的文件为空文件"); } - return content.toString(); + return cleanInvalidCharacters(content.toString()); } + public static String cleanInvalidCharacters(String input) { + StringBuilder stringBuilder = new StringBuilder(); + CharsetEncoder encoder = StandardCharsets.UTF_8.newEncoder(); + for (char ch : input.toCharArray()) { + if (encoder.canEncode(ch)) { + stringBuilder.append(ch); + } + } + return stringBuilder.toString(); + } + + private static String readExcelContent(org.apache.poi.ss.usermodel.Workbook workbook) { StringBuilder sb = new StringBuilder(); int numberOfSheets = workbook.getNumberOfSheets();