Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd24ce4b

Browse files
authored
Add tool to get merged cells (#59)
1 parent81d786b commitd24ce4b

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

‎TOOLS.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,19 @@ unmerge_cells(filepath: str, sheet_name: str, start_cell: str, end_cell: str) ->
145145
-`end_cell`: Ending cell of range
146146
- Returns: Success message
147147

148+
###get_merged_cells
149+
150+
Get merged cells in a worksheet.
151+
152+
```python
153+
get_merged_cells(filepath:str, sheet_name:str)->str
154+
```
155+
156+
-`filepath`: Path to Excel file
157+
-`sheet_name`: Target worksheet name
158+
- Returns: String representation of merged cells
159+
160+
148161
##Formula Operations
149162

150163
###apply_formula

‎src/excel_mcp/server.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
rename_sheet,
3333
merge_range,
3434
unmerge_range,
35+
get_merged_ranges,
3536
)
3637

3738
# Get project root directory path for log file path.
@@ -469,6 +470,18 @@ def unmerge_cells(filepath: str, sheet_name: str, start_cell: str, end_cell: str
469470
logger.error(f"Error unmerging cells:{e}")
470471
raise
471472

473+
@mcp.tool()
474+
defget_merged_cells(filepath:str,sheet_name:str)->str:
475+
"""Get merged cells in a worksheet."""
476+
try:
477+
full_path=get_excel_path(filepath)
478+
returnstr(get_merged_ranges(full_path,sheet_name))
479+
except (ValidationError,SheetError)ase:
480+
returnf"Error:{str(e)}"
481+
exceptExceptionase:
482+
logger.error(f"Error getting merged cells:{e}")
483+
raise
484+
472485
@mcp.tool()
473486
defcopy_range(
474487
filepath:str,

‎src/excel_mcp/sheet.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,21 @@ def unmerge_range(filepath: str, sheet_name: str, start_cell: str, end_cell: str
243243
logger.error(f"Failed to unmerge range:{e}")
244244
raiseSheetError(str(e))
245245

246+
defget_merged_ranges(filepath:str,sheet_name:str)->list[str]:
247+
"""Get merged cells in a worksheet."""
248+
try:
249+
wb=load_workbook(filepath)
250+
ifsheet_namenotinwb.sheetnames:
251+
raiseSheetError(f"Sheet '{sheet_name}' not found")
252+
worksheet=wb[sheet_name]
253+
return [str(merged_range)formerged_rangeinworksheet.merged_cells.ranges]
254+
exceptSheetErrorase:
255+
logger.error(str(e))
256+
raise
257+
exceptExceptionase:
258+
logger.error(f"Failed to get merged cells:{e}")
259+
raiseSheetError(str(e))
260+
246261
defcopy_range_operation(
247262
filepath:str,
248263
sheet_name:str,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp