前提・実現したいこと
セル結合の解除をする際に指定セルをワイルドカードにしたいです。
例えば、下記のようなコードがあるのですが
終わりのセルとして指定している「Z1」は扱うファイルのデータ量によって変わるため
変数にして、どんなファイルでも対応できるようにしたいです。
アドバイスやヒント頂けますと幸いです。
どうぞよろしくお願いいたします。
#excelファイルとシートを取得 book = openpyxl.load_workbook('/content/drive/MyDrive/file.xlsx') sheet = book['sheet'] #項目名を調整 sheet.unmerge_cells('B1:Z1')
使っているツールのバージョンなど補足情報
Google Colaboratory
例に出てくるZ1ですが、実際はどのような条件なのでしょうか?
最後の行とか、最後の列とか、何らかの決まった条件を定義できそうでしょうか?
ご質問ありがとうございます。
結合解除したいのは必ず1行目になります。列でいいますと、データが最後まで入っている列が条件になります。
最終行ということなら、以下の様な感じで最終行/列を取得できるので、これで調整してみてはいかがでしょうか?
wb = openpyxl.load_workbook('path/to/excelfile.xlsx')
ws = wb['sheetname']
maxRow = ws.max_row + 1
maxCol = ws.max_column + 1
書式設定だけされていたりして空白のセルも含めて最終行/列が出てくるため、空白だけならマイナスするなどの処理が別途必要とは思います。
ありがとうございます。
ヒントを頂いて条件を再度考えていたら、下記で実行できました。
max = sheet.max_column
alphabet = get_column_letter(max)
sheet.unmerge_cells('B1:{}1'.format(alphabet))
解決して良かったです。
alphabet = get_column_letter(max)
sheet.unmerge_cells('B1:{}1'.format(alphabet))
この部分はf-stringを使っても良いかもしれません。
sheet.unmerge_cells(f'B1:{alphabet}1')
とか
sheet.unmerge_cells(f'B1:{get_column_letter(max)}1')
など
ありがとうございます!
回答1件
あなたの回答
tips
プレビュー