This commit is contained in:
2025-11-06 20:32:16 +08:00
parent e865220a50
commit 3bf02de147
3 changed files with 492 additions and 13 deletions

View File

@@ -102,6 +102,7 @@ public class TencentDocDataParser {
/**
* 从单元格对象中提取文本内容
* 支持多种单元格类型text普通文本、link超链接
*
* @param cell 单元格对象
* @return 文本内容(如果没有则返回空字符串)
@@ -117,9 +118,45 @@ public class TencentDocDataParser {
return "";
}
// 获取 text 字段
// 优先级1检查是否有 link 字段(超链接类型)
// 格式:{"cellValue": {"link": {"url": "xxx", "text": "xxx"}}}
JSONObject link = cellValue.getJSONObject("link");
if (link != null) {
// 优先返回 text如果没有则返回 url
String linkText = link.getString("text");
if (linkText != null && !linkText.isEmpty()) {
log.debug("提取link类型单元格text: {}", linkText);
return linkText;
}
String linkUrl = link.getString("url");
if (linkUrl != null && !linkUrl.isEmpty()) {
log.debug("提取link类型单元格url: {}", linkUrl);
return linkUrl;
}
}
// 优先级2检查是否有 text 字段(普通文本类型)
// 格式:{"cellValue": {"text": "xxx"}}
String text = cellValue.getString("text");
return text != null ? text : "";
if (text != null) {
return text;
}
// 优先级3检查其他可能的字段
// 数字类型
if (cellValue.containsKey("number")) {
Object number = cellValue.get("number");
return number != null ? number.toString() : "";
}
// 布尔类型
if (cellValue.containsKey("bool")) {
Object bool = cellValue.get("bool");
return bool != null ? bool.toString() : "";
}
// 如果都没有,返回空字符串
return "";
}
/**