実現したいこと
openpyxlライブラリを用いてExcelファイルを読み込み、新しいシートの各セルに数式を実行した後の値をCSV形式で出力したいです。
発生している問題・分からないこと
編集後のExcelをpandasで読み込み、to_csv()を使ったところ、空のCSVファイルを出力された。
該当のソースコード
Python
1import openpyxl 2import csv 3import pandas as pd 4 5# Excelファイルを読み込む 6path = "sample.xlsx" 7wb = openpyxl.load_workbook(path) 8 9 10# 新しいシートを作成 11 ・ 12 ・ 13 ・ 14 15# ファイルを保存 16wb.save('output_sample.xlsx') 17 18data = pd.read_excel('output_sample.xlsx', sheet_name=new_sheet_name) 19data.to_csv("output.csv", index=False, encoding='shift_jis')
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
Chat GPT4o
Python
1import pandas as pd 2from openpyxl import load_workbook 3 4# Excelファイルのパスとシート名を指定 5excel_file_path = 'path_to_your_excel_file.xlsx' 6sheet_name = 'Sheet1' # 読み込みたいシート名 7 8# openpyxlでExcelファイルを読み込む 9wb = load_workbook(filename=excel_file_path, data_only=True) 10ws = wb[sheet_name] 11 12# シートのデータを行ごとにリストとして取得 13data = [] 14for row in ws.iter_rows(values_only=True): 15 row_data = [cell if cell is not None else "" for cell in row] 16 data.append(row_data) 17 18# データをDataFrameに変換 19df = pd.DataFrame(data) 20 21# CSVファイルに書き出し 22csv_file_path = 'output.csv' 23df.to_csv(csv_file_path, index=False, header=False) 24print(f"CSVファイル '{csv_file_path}' にデータを出力しました。") 25
補足
特になし
回答1件
あなたの回答
tips
プレビュー