Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! python3
- # excel2csv.py - ExcelファイルをCSVファイルに変換する。
- # Excelファイルのシートごとに一つのCSVファイルを作成する。
- # CSVファイル名は、Excelファイル名_シート名.csvとする。
- import sys, os, csv, openpyxl as px
- # コマンドを実行したディレクトリのパスを取得
- current_dir_path = os.getcwd()
- # コマンドライン引数でディレクトリを指定する
- if len(sys.argv) > 2:
- print('Usage: excel2csv.py search_directory_path')
- print(' Please specify only one argument.')
- print('Example: excel2csv.py relative_pathname_of_directory')
- sys.exit()
- dir_path = str(sys.argv[1])
- for excel_file in os.listdir(dir_path):
- # xlsxファイルでなければスキップし、Workbookオブジェクトを読み込む
- if not excel_file.endswith('.xlsx'):
- continue
- #excelファイル名から拡張子を分離する。
- excel_file_name = os.path.splitext(excel_file)[0]
- wb = px.load_workbook(current_dir_path + '/' + dir_path + '/' + excel_file)
- for sheet_name in wb.get_sheet_names():
- # ワークブックのシートをループする
- sheet = wb.get_sheet_by_name(sheet_name)
- # Excelファイル名とシート名からCSVファイル名を作る
- csv_file_name = str(excel_file_name + '_' + sheet_name + '.csv')
- # このCSVファイル用にcsv.writerオブジェクトを生成する
- csv_file_obj = open(os.path.join(dir_path, csv_file_name), 'w', newline='')
- csv_writer = csv.writer(csv_file_obj)
- # シートの行をループする
- for row_num in range(1, sheet.max_row + 1):
- row_data = [] # セルをこのリストに追加する
- # 行のセルをループする
- for col_num in range(1, sheet.max_column + 1):
- # セルをrow_dataに追加する
- row_data.append(sheet.cell(row=row_num, column=col_num).value)
- # row_dataをCSVファイルに書き出す
- csv_writer.writerow(row_data)
- csv_file_obj.close()
Add Comment
Please, Sign In to add comment