Home » Python » OpenPyXLの使い方 » OpenPyXLを使ってExcelをCSVに変換する

OpenPyXLを使ってExcelをCSVに変換する

動作検証バージョン:Windows 10 + Python 3.7.3 + OpenPyXL 2.6.2

pandasを使うと、簡単にExcelのワークシートをCSVファイルにできることをご紹介しました。

OpenPyXLを使ってExcelを開き、任意のワークシートをCSVファイルとして保存することも、もちろんできます。

[スポンサードリンク]

OpenPyXLを使ってExcelをCSVに変換するスクリプト

以下のスクリプトで、Cドライブtempフォルダーのfoo.xlsxファイルの先頭シートを、同じフォルダーにhoge.csvファイルとして保存できます。

import openpyxl, csv

wb = openpyxl.load_workbook('C:\\temp\\foo.xlsx')
ws = wb.worksheets[0]

with open('C:\\temp\\hoge.csv', 'w', newline="") as csvfile:
    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] )

リスト内包表記を使わない場合

リスト内包表記を使わない場合、以下のようなコードです。

with open('C:\\temp\\hoge.csv', 'w', newline="") as csvfile:
    writer =csv.writer(csvfile)
    for row in ws.rows:
        values = []
        for cell in row:
            values.append(cell.value)
        writer.writerow(values)

行数・ループの階層が増えます。

with文を使わない場合

with文を使わない場合、以下のようなコードです。

csvfile = open('C:\\temp\\hoge.csv', 'w', newline="")
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

[スポンサードリンク]

Home » Python » OpenPyXLの使い方 » OpenPyXLを使ってExcelをCSVに変換する

「OpenPyXLの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.