1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

xlwingsでExcelのセルの書式設定の表示形式の分類を文字列に変更したい

Posted at

PythonでExcelを操作もしくはExcelからPythonを呼び出すときにxlwingsさんを使っています。

xlwingsでセルの書式設定の分類を変更したい!ってなりました。

右クリックで出てくる
2022-03-09_13h06_50.png

ここのこれです

2022-03-09_13h07_41.png

よくあるのが住所データが入ったCSVをExcelにインポートした時に、番地だけが入っていると○月○日となってしまうやつです。

2022-03-09_13h11_31.png

これをセルの書式設定の分類を文字列にして回避します。

コード

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

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?