Skip to content

Commit 4081e0d

Browse files
k-ibarakiclaude
andcommitted
docs: fix docstring and improve partial overlap handling
Fix two issues identified in code review: 1. Add missing 'dimensions' field to parse_to_json() docstring - dimensions is always included in response but was missing from docs - Add example: "A1:D10" 2. Improve _calculate_header_range() for partial overlap cases - Previous: frozen_rows=2, cell_range="A2:B6" → no header added (row 1 missing) - Fixed: Add missing rows "A1:B1" → final result "A1:B6" - Update docstring with clear explanation of partial overlap behavior Example: - frozen_rows=2, cell_range="A2:B6" - Returns header_range="A1:B1" - Final merged range: "A1:B6" (includes all frozen rows) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 36d3b32 commit 4081e0d

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

src/sharepoint_excel.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ def parse_to_json(
122122
Returns:
123123
JSON文字列
124124
- 各セルのデータ: value(値)、coordinate(座標)
125+
- 構造情報: シート名、dimensions(シート全体のセル範囲、例: "A1:D10")
125126
- 構造情報: frozen_rows(固定行数)、frozen_cols(固定列数)
126127
- 条件付き構造情報: freeze_panes(存在する場合)、merged_ranges(結合セルが存在する場合)
127128
"""
@@ -304,7 +305,11 @@ def _calculate_header_range(
304305
305306
早期リターン条件:
306307
- frozen_rows=0: ヘッダーなし
307-
- start_row <= frozen_rows: 既にヘッダーを含む
308+
- start_row == 1: 既に1行目から開始(ヘッダー全体を含む)
309+
310+
部分的な重なり処理:
311+
- frozen_rows=2, cell_range="A2:B6" の場合
312+
→ 不足分 "A1:B1" を返して、最終的に "A1:B6" になる
308313
"""
309314
# frozen_rowsが0の場合はヘッダーなし
310315
if frozen_rows == 0:
@@ -322,10 +327,16 @@ def _calculate_header_range(
322327
start_col_letter, start_row = coordinate_from_string(start)
323328
end_col_letter, _ = coordinate_from_string(end)
324329

325-
# 開始行が既にヘッダーを含む場合は重複回避
326-
if start_row <= frozen_rows:
330+
# 既に1行目から開始している場合は追加不要(ヘッダー全体を含む)
331+
if start_row == 1:
327332
return None
328333

334+
# 部分的な重なりがある場合は、不足している上部のヘッダー行を追加
335+
if start_row <= frozen_rows:
336+
# 1行目から(start_row-1)行目までを追加
337+
header_range = f"{start_col_letter}1:{end_col_letter}{start_row - 1}"
338+
return header_range
339+
329340
# ヘッダー範囲を計算: {start_col}1:{end_col}{frozen_rows}
330341
header_range = f"{start_col_letter}1:{end_col_letter}{frozen_rows}"
331342
return header_range

0 commit comments

Comments
 (0)