stmtkブログ

Python中心の技術ブログです。

【Python】Excelをテキストファイルに変換する

機能

Excelをテキストファイルに変換するPythonプログラムです。

シートの列ごとにテキストファイルへ変換します。

テキストファイルは「ファイル名_連番.txt」で作成されます。

実行前

実行後

サンプル動画

youtu.be

プログラム

#! python3
# 機能
#  Excelをテキストファイルに変換する
# 使い方
#  1.Pythonを実行する
# 実行コマンド
#  python xlsx2txt.py 入力ファイル名 出力フォルダ
#  python xlsx2txt.py input.xlsx output

import os
import sys
import openpyxl

# Excelからテキストファイルへ変換する関数
def xlsx2txt(input_file_name, output_folder):
    os.makedirs(output_folder, exist_ok=True)

    # アクティブシートを選択
    wb = openpyxl.load_workbook(input_file_name)
    sheet = wb.active

    # シートの列ごとにテキストファイルを作成する
    for col in range(1, sheet.max_column + 1):
        file_name = "{}_{:03}.txt".format(input_file_name, col)
        with open(
            os.path.join(output_folder, file_name), "w", encoding="utf-8"
        ) as text_file:

            # 値が設定されているセルのみ書き込む
            for row in range(1, sheet.max_row + 1):
                value = sheet.cell(column=col, row=row).value
                if value != None:
                    text_file.write(str(value) + "\n")


if len(sys.argv) != 3:
    sys.exit("使い方:python xlsx2txt.py 入力ファイル名 出力フォルダ")

xlsx2txt(sys.argv[1], sys.argv[2])

使い方

  1. Pythonを実行する

実行コマンド

python xlsx2txt.py 入力ファイル名 出力フォルダ
python xlsx2txt.py input.xlsx output

openpyxlをインストールしていない場合は以下のコマンドでインストールして下さい。

pip install openpyxl

参考文献

www.oreilly.co.jp