※このページにはプロモーションが含まれています。当サイトは各種アフィリエイトプログラムから一定の収益を得ています。
処理イメージ
- 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())