表題のとおり。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()
以上。
関連記事
Python の記事
- [2018年1月16日] Pythonでファイル・ディレクトリ操作
- [2018年1月9日] pythonで画像をダウンロードして、URLに応じてディレクトリ分けする
- [2017年12月27日] Pandasで行の追加(縦方向の連結)の操作メモ
- [2017年12月25日] PDFから文章を抽出する
- [2017年12月25日] seleniumのGoogle検索で最初にヒットしたサイトのスクリーンショットを撮る
- ---本記事---
- [2017年11月14日] pythonのxlsxwriterでフォーマットの上書きをしたいが…
- [2016年10月22日] pythonのPyYAMLでブロック形式で書き込み(dump出力)
- [2016年10月4日] 旧版:とにかくRaspberry Piにpython3 + numpy + matplotlibをインストールする(pyenv使用)
- [2016年8月3日] Python3で意図せずしてfloatに…VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
- [2015年12月17日] matplotlib も十分わかりやすく思えてしまう
スポンサーリンク