diff --git a/pom.xml b/pom.xml
index 2f2ce0a..9f0a20e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,6 +39,7 @@
2.0.29
5.2.3
5.2.3
+ 5.2.3
8.0.33
3.5.5
@@ -190,6 +191,11 @@
poi-ooxml
${poi-ooxml.version}
+
+ org.apache.poi
+ poi-scratchpad
+ ${poi-scratchpad.version}
+
@@ -346,6 +352,10 @@
org.apache.poi
poi-ooxml
+
+ org.apache.poi
+ poi-scratchpad
+
mysql
diff --git a/src/main/java/com/knowledge/base/domain/doc/service/impl/ExcelImporter.java b/src/main/java/com/knowledge/base/domain/doc/service/impl/ExcelImporter.java
index c84bb80..d94faee 100644
--- a/src/main/java/com/knowledge/base/domain/doc/service/impl/ExcelImporter.java
+++ b/src/main/java/com/knowledge/base/domain/doc/service/impl/ExcelImporter.java
@@ -1,9 +1,7 @@
package com.knowledge.base.domain.doc.service.impl;
-/**
- * @author Luke.ye
- * @date 2025/5/25 14:54
- */
+
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Value;
@@ -15,6 +13,10 @@ import java.nio.file.Path;
import java.util.Iterator;
import java.util.Set;
+/**
+ * @author Luke.ye
+ * @date 2025/5/25 14:54
+ */
@Component
public class ExcelImporter extends AbstractBaseFileImporter {
@@ -43,8 +45,11 @@ public class ExcelImporter extends AbstractBaseFileImporter {
@Override
protected String extractContent(Path path) throws IOException {
+ String fileName = path.getFileName().toString().toLowerCase();
+ boolean isXlsx = fileName.endsWith(".xlsx");
+
try (FileInputStream fis = new FileInputStream(path.toFile());
- Workbook workbook = new XSSFWorkbook(fis)) {
+ Workbook workbook = isXlsx ? new XSSFWorkbook(fis) : new HSSFWorkbook(fis)) {
Sheet sheet = workbook.getSheetAt(0);
StringBuilder sb = new StringBuilder();
diff --git a/src/main/java/com/knowledge/base/domain/doc/service/impl/WordImporter.java b/src/main/java/com/knowledge/base/domain/doc/service/impl/WordImporter.java
index 37ee013..2d06bbd 100644
--- a/src/main/java/com/knowledge/base/domain/doc/service/impl/WordImporter.java
+++ b/src/main/java/com/knowledge/base/domain/doc/service/impl/WordImporter.java
@@ -1,6 +1,7 @@
package com.knowledge.base.domain.doc.service.impl;
import com.knowledge.base.domain.common.enums.DocTypeEnum;
+import org.apache.poi.hwpf.HWPFDocument;
import org.springframework.stereotype.Component;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
@@ -44,12 +45,28 @@ public class WordImporter extends AbstractBaseFileImporter {
@Override
protected String extractContent(Path path) throws IOException {
- try (XWPFDocument document = new XWPFDocument(new FileInputStream(path.toFile()))) {
- StringBuilder content = new StringBuilder();
- for (XWPFParagraph para : document.getParagraphs()) {
- content.append(para.getText()).append("\n");
+ String fileName = path.getFileName().toString().toLowerCase();
+
+ if (fileName.endsWith(".docx")) {
+ // 处理 .docx
+ try (FileInputStream fis = new FileInputStream(path.toFile());
+ XWPFDocument document = new XWPFDocument(fis)) {
+
+ StringBuilder content = new StringBuilder();
+ for (XWPFParagraph para : document.getParagraphs()) {
+ content.append(para.getText()).append("\n");
+ }
+ return content.toString().trim();
}
- return content.toString().trim();
+ } else if (fileName.endsWith(".doc")) {
+ // 处理 .doc
+ try (FileInputStream fis = new FileInputStream(path.toFile());
+ HWPFDocument doc = new HWPFDocument(fis)) {
+
+ return doc.getDocumentText().trim();
+ }
+ } else {
+ throw new IllegalArgumentException("不支持的 Word 文件类型: " + fileName);
}
}
}