質問するログイン新規登録
openpyxl

openpyxlは、Excel2007以降のファイル(xlsx/xlsm/xltx/xltm)を読み書きするためのPythonライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

119閲覧

openpyxlで文字を数値に置換したい

python_2019

総合スコア71

openpyxl

openpyxlは、Excel2007以降のファイル(xlsx/xlsm/xltx/xltm)を読み書きするためのPythonライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2025/08/16 06:04

0

0

openpyxlで文字を数値に置換したいのですが、どうも上手く行きません。
以下のサンプルプログラムでは'Sheet0'の中のセル「'A5'」だけ文字から数値に変換できるのですが、これを特定のセルだけではなく、'Sheet0'に含まれる文字すべてを数値に変換したいです。

cell = ws['A5']を削除したり、cell = ws['Sheet0']]にしたりしましたが、上手く行きません。
どなたか、お詳しい方いらっしゃましたら、お助けください。
よろしくお願いいたします。

===サンプルプログラム===
wb = openpyxl.load_workbook('log009_AirFilter2410170759_ver3_plate_置換.xlsx')
ws = wb['Sheet0']

cell = ws['A5']

if isinstance(cell.value, str) and cell.value.isdigit():
cell.value = int(cell.value)

wb.save('数値変換.xlsx')
=====

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

iter_rows() を利用して全てのセルをチェックして、整数値に変換可能な文字列の場合は整数値に置き換えます。

openpyxl.worksheet.worksheet.Worksheet.iter_rows

iter_rows(min_row=None, max_row=None, min_col=None, max_col=None, values_only=False)

Produces cells from the worksheet, by row. Specify the iteration range using indices of rows and columns.

python

1wb = openpyxl.load_workbook('log009_AirFilter2410170759_ver3_plate_置換.xlsx') 2ws = wb['Sheet0'] 3 4for row in ws.iter_rows(): 5 for cell in row: 6 if isinstance(cell.value, str) and cell.value.isdigit(): 7 cell.value = int(cell.value) 8 9wb.save('数値変換.xlsx')

投稿2025/08/16 06:52

melian

総合スコア21400

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

python_2019

2025/08/16 12:46

解決しました! プログラムまで修正して頂きまして、大変助かりました。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問