How to use Range.CheckSpelling in the xlwings API way

The CheckSpelling member of the Range object in Excel is a method used to initiate a spell check on the text within a specified cell or range of cells. It mimics the functionality of the built-in spell checker in Excel, allowing developers to programmatically verify and correct spelling errors. This can be particularly useful in automating data validation processes, especially when dealing with user-generated content or imported text data that may contain typos or misspellings. The method returns a Boolean value indicating whether all words in the range are spelled correctly according to the dictionary settings.

Syntax in xlwings API:
The xlwings library provides a Pythonic way to interact with Excel objects. To use CheckSpelling via xlwings, you typically access it through a Range object. The method’s signature in xlwings closely follows the Excel object model. The syntax is:

range_object.api.CheckSpelling(CustomDictionary, IgnoreUppercase, AlwaysSuggest, SpellLang)

Where:

  • range_object is an xlwings Range object, such as sheet.range('A1') or sheet.range('A1:B10').
  • .api is used to access the underlying Excel object model (e.g., the COM object in Windows or AppleScript object on Mac).
  • CheckSpelling is the method name.
  • The parameters are optional and correspond to those in the Excel VBA CheckSpelling method. Their meanings and values are as follows:
ParameterDescriptionTypical Values
CustomDictionaryA string specifying the filename of the custom dictionary to use. If omitted, the default dictionary is used.e.g., "CUSTOM.DIC" or a path string.
IgnoreUppercaseA Boolean value. If True, words in all uppercase letters are ignored during spell check.True or False (default is False).
AlwaysSuggestA Boolean value. If True, Excel will always suggest alternative spellings when a misspelling is found.True or False (default is False).
SpellLangThe language of the dictionary to use, specified by a language code.e.g., 1033 for English (United States).

Example Usage:
Below are practical xlwings code examples demonstrating how to use the CheckSpelling method in different scenarios.

Example 1: Basic spell check on a single cell.
This checks the spelling in cell A1 of the active sheet and prints whether all words are correct.

import xlwings as xw

# Connect to the active Excel instance and workbook
app = xw.apps.active
wb = app.books.active
sheet = wb.sheets.active

# Define the range (single cell A1)
target_range = sheet.range('A1')

# Perform spell check with default settings
is_correct = target_range.api.CheckSpelling()
print(f"All words spelled correctly in A1: {is_correct}")

Example 2: Spell check on a range with custom parameters.
This checks a range from A1 to B5, ignoring uppercase words and using a specific custom dictionary.

import xlwings as xw

app = xw.apps.active
wb = app.books.active
sheet = wb.sheets.active

# Define a larger range
target_range = sheet.range('A1:B5')

# Perform spell check, ignoring uppercase words and specifying a custom dictionary
is_correct = target_range.api.CheckSpelling(CustomDictionary="MyCustom.dic", IgnoreUppercase=True)
if not is_correct:
    print("Spelling errors found in range A1:B5. Consider reviewing manually.")

Example 3: Iterating through a column to check spelling in each cell.
This loops through cells in column A (rows 1 to 10) and marks cells with spelling errors by changing the font color to red.

import xlwings as xw
from xlwings import constants

app = xw.apps.active
wb = app.books.active
sheet = wb.sheets.active

for i in range(1, 11):
    cell = sheet.range(f'A{i}')
    # Check spelling for each cell
    is_correct = cell.api.CheckSpelling()
    if not is_correct:
        # Highlight misspelled cells in red
        cell.api.Font.Color = constants.RgbColor.rgbRed
        print(f"Spelling error detected in cell A{i}")

October 17, 2026 (0)


Leave a Reply

Your email address will not be published. Required fields are marked *