質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.31%
openpyxl

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

5434閲覧

python opnpyxlを利用し取り消し線が引かれているか判定する

NR4200

総合スコア41

openpyxl

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/12/10 13:00

実現したいこと

python ライブラリ openpyxlを使ってexcelファイルの任意のセルの取り消し線が引かれているかどうかを判定したい

セルの値をそのまま取得したところ,取り消し線がついていない値が取得されてしまったので

書式情報から取り消し線情報に該当するstrike(strike = True:取り消し線あり)の値から取り消し線があるかどうかを
判定しようと考えています.
そこで取得情報をIf分の判定式にすることはできるのでしょうか

該当のソースコード

python

1 def Read_excel_file(self,Sheet,Row,Column,Read_file_place,Read_file_name,*args,**kwargs): 2 """ 3 指定したexcelファイルから任意のセルの値を呼び出す 4 Sheet :読み込むsheetの選択 5 Row :縦方向 6 Column :横方向 7 Read_file_place :読み取るファイルの場所 8 Read_file_name :読み取るファイルの名前 9 """ 10 if Read_file_place == "": 11 wb = openpyxl.load_workbook("{0}".format(Read_file_name)) 12 else: 13 wb = openpyxl.load_workbook(r"{0}\{1}".format(Read_file_place,Read_file_name)) 14 #wb = openpyxl.load_workbook(Read_file_name) 15 ws = wb.worksheets[Sheet] 16 c1 = ws["{0}{1}".format(Row,Column)] 17 wb.close() 18 #return c1.value 19 20 return c1.font 21 22出力結果 23Parameters: 24name='MS Pゴシック', charset=128, family=3.0, b=False, i=False, strike=True, outline=None, shadow=None, condense=None, color=<openpyxl.styles.colors.Color object> 25Parameters: 26rgb=None, indexed=None, auto=None, theme=1, tint=0.0, type='theme', extend=None, sz=11.0, u=None, vertAlign=None, scheme=None

試したこと

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

できます。

質問のコードを抜粋すると以下のようになっていますが、この関数が返すのは、 Fontクラスのインスタンスです。

python

1 def Read_excel_file(self,Sheet,Row,Column,Read_file_place,Read_file_name,*args,**kwargs): 2 wb = openpyxl.load_workbook(r"{0}\{1}".format(Read_file_place,Read_file_name)) 3 ws = wb.worksheets[Sheet] 4 c1 = ws["{0}{1}".format(Row,Column)] 5 return c1.font

Fontクラスのオブジェクトは、以下の資料にあるようなプロパティを持っています。
https://cercopes-z.com/Python/openpyxl/module-styles-fonts-opxl.html#class-Font

なので、この関数の返り値をcell_fontで受けるとすると、 cell_font.strike が True か False になっているので、ifで判別することができます。

投稿2022/12/10 13:56

編集2022/12/11 02:28
TakaiY

総合スコア14291

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問