pandasを使うと、簡単にExcelのワークシートをCSVファイルにできることをご紹介しました。
OpenPyXLを使ってExcelを開き、任意のワークシートをCSVファイルとして保存することも、もちろんできます。
OpenPyXLを使ってExcelをCSVに変換するスクリプト
以下のスクリプトで、Cドライブtempフォルダーのfoo.xlsxファイルの先頭シートを、同じフォルダーにhoge.csvファイルとして保存できます。
wb = openpyxl.load_workbook('C:\\temp\\foo.xlsx')
ws = wb.worksheets[0]
writer = csv.writer(csvfile)
for row in ws.rows:
writer.writerow( [cell.value for cell in row] )
OpenPyXLを使ってExcelをCSVに変換する処理の流れ
Cドライブtempフォルダーの、foo.xlsxを開き、
wb = openpyxl.load_workbook('C:\\temp\\foo.xlsx')
先頭シートを、CSVファイルにするワークシートに指定します。
ws = wb.worksheets[0]
open関数でCドライブtempフォルダーのhoge.csvファイルを開き、
with open('C:\\temp\\hoge.csv', 'w', newline="") as csvfile:
csv.writerでwriterオブジェクトを用意し、
writer = csv.writer(csvfile)
ワークシートの各行に対してfor文を回して、
for row in ws.rows:
writer.writerowでワークシートの各行のデータを書き込んでいます。
writer.writerow( [cell.value for cell in row] )
リスト内包表記を使わない場合
リスト内包表記を使わない場合、以下のようなコードです。
writer =csv.writer(csvfile)
for row in ws.rows:
values = []
for cell in row:
values.append(cell.value)
writer.writerow(values)
行数・ループの階層が増えます。
with文を使わない場合
with文を使わない場合、以下のようなコードです。
writer =csv.writer(csvfile)
for row in ws.rows:
writer.writerow( [cell.value for cell in row] )
csvfile.close()
最後のclose()を忘れずに書く必要があります。
最終更新日時:2019-07-14 04:21
- Newer:xlrdのnrows・ncolsは何を返すのか
- Older:xlrdで最後・右端のシートを取得する
Home » Python » OpenPyXLの使い方 » OpenPyXLを使ってExcelをCSVに変換する