CSVモジュールでExcel形式を指定すると、Excelで読み取れるCSVファイルを出力できます。
サンプルコード
CSVモジュールは標準でサポートされているため、別途インストールする必要はありません。# CSVモジュールをインポート
import csv
# CSVデータ
csvRowDataArray = []
csvRowDataArray.append(["行番号", "コード", "名称"])
csvRowDataArray.append(["1", "A001", "Python"])
csvRowDataArray.append(["2", "A002", "C#"])
# 書き込みモードでファイルを開く
with open("./test.csv", "w", encoding="cp932", newline="", errors="ignore") as file:
# CSV表現形式をExcelに指定
csvWriter = csv.writer(file, dialect="excel")
for csvRowData in csvRowDataArray:
csvWriter.writerow(csvRowData)
書き込み用ファイルを開くときの注意点
- ExcelはUTF-8のCSVファイルを開くと文字化けするので、encodingオプションでcp932を指定します。
- CSVモジュールのwriterow関数で改行コードが付与されます。ファイルオブジェクトでの書き込み時も改行が付与されるため、余計な空行ができてしまいます。これを防ぐためにnewlineオプションでファイルオブジェクトの改行コードが付与されないようにします。
サンプルコードのダウンロード
サンプルコードの実行には Python3 以上のバージョンが必要です。検証環境
- Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
- Microsoft Windows 7 Professional Service Pack 1 (Microsoft Windows NT 6.1 (7601))