PythonでExcelを操作もしくはExcelからPythonを呼び出すときにxlwingsさんを使っています。
xlwingsでセルの書式設定の分類を変更したい!ってなりました。
例
ここのこれです
よくあるのが住所データが入ったCSVをExcelにインポートした時に、番地だけが入っていると○月○日となってしまうやつです。
これをセルの書式設定の分類を文字列にして回避します。
コード
csv_paste.py
import xlwings as xw
import pandas as pd
df = pd.read_csv('csv.csv', dtype = str)
wb = xw.Book()
sh = wb.sheets.active
sh.range('A:XFD').number_format = '@' # 全てのセル(A列~XFD列)のセルの書式設定の分類を 文字列 に変更
sh.range('A1').options(index = False, header = True, dtype = str).value = df # dfをA1セルからヘッダーありで貼り付け
VBAのnumber_format的に使えるということです_(┐「ε:)_
「xlwings 書式設定 変更」で検索していて以下の記事を見つけました。
表示形式を取得できるとうことは、逆に変更もできるんじゃね?って試してみたところできました、ありがとうございます!
number_formatはNumberFormatLocalに相当
とのこと🙌
なので文字列以外にも標準なら'G/標準'、数値なら'0_'としてあげることで自由に変更することができそうです。
これで住所が日付・時間に自動変換されたり、=や+、-から始まる値も数式に自動変換されることがなくなりました👍
よかったらTwitterもフォローお願いします\(^o^)/
https://twitter.com/tbshiki