This commit is contained in:
2025-11-06 11:05:22 +08:00
parent 763d9985fa
commit 7860df5c2e
4 changed files with 375 additions and 8 deletions

View File

@@ -504,16 +504,16 @@ public class TencentDocController extends BaseController {
// 计算读取范围从起始行开始读取足够多的行假设每次最多处理200行
int endRow = startRow + 200; // 每次最多读取200行
String startColumn = "A";
String endColumn = "Z";
String range = String.format("%s%d:%s%d", startColumn, startRow, endColumn, endRow);
log.info("开始填充物流链接 - 文件ID: {}, 工作表ID: {}, 起始行: {}, 结束行: {}, 上次最大行: {}",
fileId, sheetId, startRow, endRow, lastMaxRow);
// 读取表格数据(先读取表头行用于识别列位置)
String headerRange = String.format("%s%d:%s%d", startColumn, headerRow, endColumn, headerRow);
log.info("读取表头 - 范围: {}", headerRange);
// 腾讯文档V3 API的range格式startRow,startColumn,endRow,endColumn从0开始的索引
// 例如第2行A列到Z列 = "1,0,1,25"行索引从0开始所以第2行是索引1
int headerRowIndex = headerRow - 1; // Excel行号转索引第2行 = 索引1
String headerRange = String.format("%d,0,%d,25", headerRowIndex, headerRowIndex); // 读取A到Z列0-25
log.info("读取表头 - Excel行号: {}, 索引行号: {}, range: {}", headerRow, headerRowIndex, headerRange);
JSONObject headerData = null;
try {
@@ -566,7 +566,12 @@ public class TencentDocController extends BaseController {
}
// 读取数据行
log.info("开始读取数据行 - 范围: {}", range);
// 构建数据行的range从startRow到endRowA列到Z列
int startRowIndex = startRow - 1; // Excel行号转索引
int endRowIndex = endRow - 1; // Excel行号转索引
String range = String.format("%d,0,%d,25", startRowIndex, endRowIndex); // 读取A到Z列0-25
log.info("开始读取数据行 - Excel行号: {} ~ {}, 索引: {} ~ {}, range: {}", startRow, endRow, startRowIndex, endRowIndex, range);
JSONObject sheetData = null;
try {
sheetData = tencentDocService.readSheetData(accessToken, fileId, sheetId, range);