「エクセル文字数カウント python」
といった検索でアクセスがあります。
Pythonを使って、Excelのセル内の文字数をカウントするには、どのようなコードを書けばいいのかを探していらしたのでしょうか。
この記事では、Excelを操作する外部ライブラリ「xlwings」を使ったコードをご紹介します。
xlwingsでセル内の文字数を取得するサンプルスクリプト
A1セルに文字列の入力されているワークシートがアクティブな状態で、以下のスクリプトを実行してください。
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文でチェックするのが一案です。
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プロパティ