Home » Python » xlwingsの使い方 » xlwingsでセル内の文字数を取得するには-len()関数・Range.valueプロパティ

xlwingsでセル内の文字数を取得するには-len()関数・Range.valueプロパティ

動作検証バージョン:Windows 11 Home + Python 3.10.6(64-bit) + xlwings 0.30.9 + 64bit Excel(バージョン2307 ビルド16610.20000 クイック実行)

「エクセル文字数カウント python」
といった検索でアクセスがあります。

Pythonを使って、Excelのセル内の文字数をカウントするには、どのようなコードを書けばいいのかを探していらしたのでしょうか。

[スポンサードリンク]

この記事では、Excelを操作する外部ライブラリ「xlwings」を使ったコードをご紹介します。

xlwingsでセル内の文字数を取得するサンプルスクリプト

A1セルに文字列の入力されているワークシートがアクティブな状態で、以下のスクリプトを実行してください。

import xlwings as xw

val = xw.Range('A1').value
print(len(val))

A1セルに入力されている文字列の文字数が出力されます。

Pythonの組み込み関数len()の引数に、xlwingsのRange.valueプロパティで取得したデータを指定しています。

str型ではないデータではない場合

A1セルに文字列ではないデータ、たとえば数値が入力されているときに上記のスクリプトを実行すると

TypeError: object of type 'float' has no len()

エラーが発生します。

float型のデータをlen()関数の引数に指定できないため発生するエラーです。
len()関数の引数について、公式ドキュメントには以下の記述があります。

引数はシーケンス (文字列、バイト列、タプル、リスト、range 等) かコレクション (辞書、集合、凍結集合等) です。

これを回避するのであれば以下のように、以下のようにif文でチェックするのが一案です。

val = xw.Range('A1').value
if isinstance(val, str):
    print(len(val))

組み込み関数isinstance()を使って、変数valのデータがstr型かどうかを判定してから、

if isinstance(val, str):

len()関数を使った文字数取得を行っています。

    print(len(val))

最終更新日時:2023-06-29 15:02

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsでセル内の文字数を取得するには-len()関数・Range.valueプロパティ

「xlwingsの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.