【python】xlsxをcsvに変換

スポンサーリンク

※このページにはプロモーションが含まれています。当サイトは各種アフィリエイトプログラムから一定の収益を得ています。

処理イメージ

  • xlsxをcsvに変換するpythonコード
  • 1シートを1csvファイルに変換
  • シート名をcsvファイル名にする

必要ライブラリをインストール

pip install pandas openpyxl


xlsx→csv変換コード

import os
import pandas as pd

def process_xlsx(xlsx_path: str):

    base_dir = os.path.dirname(xlsx_path)
    file_name = os.path.basename(xlsx_path)
    base_name = os.path.splitext(file_name)[0]
    output_dir = os.path.join(base_dir, base_name)

    os.makedirs(output_dir, exist_ok=True)

    excel_file = pd.ExcelFile(xlsx_path, engine="openpyxl")
    sheet_names = excel_file.sheet_names

    # CSV出力
    # シート名をCSVファイル名とする
    for sheet_name in sheet_names:
        df = pd.read_excel(excel_file, sheet_name=sheet_name, dtype=str)

        csv_path = os.path.join(output_dir, f"{sheet_name}.csv")
        df.to_csv(csv_path, index=False, encoding="utf-8-sig")


def convert_xlsx_to_csv_recursively(start_dir: str):
    for root, _, files in os.walk(start_dir):
        for file_name in files:
            if file_name.lower().endswith(".xlsx"):
                xlsx_path = os.path.join(root, file_name)
                process_xlsx(xlsx_path)

if __name__ == "__main__":
    # カレントディレクトリ配下をすべて処理
    convert_xlsx_to_csv_recursively(os.getcwd())

スポンサーリンク

python