pythonでExcelファイル内の半角をすべて全角にする

表題のとおり。Excelファイル内の半角をすべて全角にする。住所録とかで、全角を指定されたり、とか。そういう時。人とやりとりしていると、Excelファイルは避けて通れないもので……。

Excelなのだから、Excel VBAでやるのが正道なのかもしれないけれど……わざわざ覚えるのもなー……ということで、python。便利なライブラリを開発してくれている方のおかげで、大して覚えることもなく。有難い。

やること

Excelファイルで、半角の文字をすべて全角に変換する。pythonでやる。

xlrdで読み込み、読み込んだデータに大してmojimojiを使って半角→全角変換、xlsxwriterを利用して書き込み。xlsxwriterは新しくExcelファイルを作ることになる。pipでインストールしておく。

pip install xlrd xlsxwriter mojimoji

ソースコード

以下のプログラムで、before.xlsxを読み込んで、処理したものをafter.xlsxとして出力する。このプログラムだと装飾についてはコピーできない。after.xlsxの中身をコピーして、before.xlsxに形式合わせてペーストするのが一番楽かなと思う。セル内の一部分だけアンダーバーを引く、というような細かな装飾についてはどうしようもないが。そこまでやるならExcel VBAか。

import xlrd
import xlsxwriter
import mojimoji

def han2zen(val):
    if type(val) is not str:
        val = str(val)
    val = mojimoji.han_to_zen(val)
    return val


def main():
    orig_book = xlrd.open_workbook('before.xlsx')
    orig_sheet = orig_book.sheet_by_index(1)
    write_book = xlsxwriter.Workbook('after.xlsx')
    write_sheet = write_book.add_worksheet()

    for row in range(orig_sheet.nrows):
        for col in range(orig_sheet.ncols):
            cell = han2zen(orig_sheet.cell(row,col).value)
            write_sheet.write(row,col,cell)
    write_book.close()


if __name__ == '__main__':
    main()

以上。

関連記事

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です