1
This commit is contained in:
@@ -1055,6 +1055,22 @@ public class TencentDocController extends BaseController {
|
|||||||
log.info("已截断结束行以符合 API 限制: endRow={}, 行数={}", endRow, READ_ROWS_WHEN_USE_ROW_TOTAL);
|
log.info("已截断结束行以符合 API 限制: endRow={}, 行数={}", endRow, READ_ROWS_WHEN_USE_ROW_TOTAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 若之前未取到 rowTotal 或来自 fallback,再次尝试并用 sheet 最大行硬性限制,避免读到 348 超出 324 行
|
||||||
|
if (rowTotal <= 0) {
|
||||||
|
rowTotal = tencentDocService.getSheetRowTotal(accessToken, fileId, sheetId);
|
||||||
|
}
|
||||||
|
if (rowTotal > 0) {
|
||||||
|
if (startRow > rowTotal) {
|
||||||
|
startRow = Math.max(MIN_START_ROW_WHEN_USE_ROW_TOTAL,
|
||||||
|
Math.max(effectiveStartRow, rowTotal - READ_ROWS_WHEN_USE_ROW_TOTAL));
|
||||||
|
endRow = Math.min(rowTotal, startRow + READ_ROWS_WHEN_USE_ROW_TOTAL - 1);
|
||||||
|
log.info("按 rowTotal={} 修正范围,避免超出表尾: 第 {} ~ {} 行", rowTotal, startRow, endRow);
|
||||||
|
} else if (endRow > rowTotal) {
|
||||||
|
endRow = rowTotal;
|
||||||
|
log.info("按 rowTotal={} 截断结束行: endRow={}", rowTotal, endRow);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
log.info("开始填充物流链接 - 文件ID: {}, 工作表ID: {}, 起始行: {}, 结束行: {}, rowTotal: {}",
|
log.info("开始填充物流链接 - 文件ID: {}, 工作表ID: {}, 起始行: {}, 结束行: {}, rowTotal: {}",
|
||||||
fileId, sheetId, startRow, endRow, rowTotal > 0 ? rowTotal : "未获取");
|
fileId, sheetId, startRow, endRow, rowTotal > 0 ? rowTotal : "未获取");
|
||||||
|
|
||||||
|
|||||||
@@ -598,9 +598,16 @@ public class TencentDocServiceImpl implements ITencentDocService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
String sid = props.getString("sheetId");
|
String sid = props.getString("sheetId");
|
||||||
if (sheetId.equals(sid) && props.containsKey("rowTotal")) {
|
if (!sheetId.equals(sid)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// rowTotal 可能为 rowTotal 或 row_total
|
||||||
|
if (props.containsKey("rowTotal")) {
|
||||||
return Math.max(0, props.getIntValue("rowTotal"));
|
return Math.max(0, props.getIntValue("rowTotal"));
|
||||||
}
|
}
|
||||||
|
if (props.containsKey("row_total")) {
|
||||||
|
return Math.max(0, props.getIntValue("row_total"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user