Skip to main content
Glama

unmerge_cells

Unmerge cells in an Excel sheet to split merged data back into individual cells. Specify file path, sheet name, and cell range to process.

Instructions

Unmerge a range of cells.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
end_cellYes
filepathYes
sheet_nameYes
start_cellYes

Implementation Reference

  • MCP tool handler for unmerge_cells, decorated with @mcp.tool() for registration, which delegates to the unmerge_range helper.
    @mcp.tool() def unmerge_cells(filepath: str, sheet_name: str, start_cell: str, end_cell: str) -> str: """Unmerge a range of cells.""" try: full_path = get_excel_path(filepath) result = unmerge_range(full_path, sheet_name, start_cell, end_cell) return result["message"] except (ValidationError, SheetError) as e: return f"Error: {str(e)}" except Exception as e: logger.error(f"Error unmerging cells: {e}") raise
  • Core helper function implementing the unmerge logic using openpyxl. Validates the range, checks if merged, calls worksheet.unmerge_cells, and saves the workbook.
    def unmerge_range(filepath: str, sheet_name: str, start_cell: str, end_cell: str) -> Dict[str, Any]: """Unmerge a range of cells.""" try: wb = load_workbook(filepath) if sheet_name not in wb.sheetnames: raise SheetError(f"Sheet '{sheet_name}' not found") worksheet = wb[sheet_name] start_row, start_col, end_row, end_col = parse_cell_range(start_cell, end_cell) if end_row is None or end_col is None: raise SheetError("Both start and end cells must be specified for unmerging") range_string = format_range_string(start_row, start_col, end_row, end_col) # Check if range is actually merged merged_ranges = worksheet.merged_cells.ranges target_range = range_string.upper() if not any(str(merged_range).upper() == target_range for merged_range in merged_ranges): raise SheetError(f"Range '{range_string}' is not merged") worksheet.unmerge_cells(range_string) wb.save(filepath) return {"message": f"Range '{range_string}' unmerged successfully"} except SheetError as e: logger.error(str(e)) raise except Exception as e: logger.error(f"Failed to unmerge range: {e}") raise SheetError(str(e))

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/haris-musa/excel-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server