PythonでExcel を自動化: XlsxWriterを使用してExcelファイルを作成する方法

title_openpyxl

XlsxWriterを使用したExcelファイルの作成方法を紹介します。XlsxWriterを用いることで、Excelファイルの新規作成が出来ます。XlsxWriterでは既存ファイルの読み込みはできませんが、チャートの作成、セルの書式設定、セルのセルマージ、Excelの関数の埋め込み等、Excelファイルを作成する為に十分な機能を有しています。

スポンサーリンク

XlsxWriterのインストール

Anacondaを使用している環境であればXlsxWriterはインストールされていると思います。もしインストールされていない場合は、pipかcondaでインストールします。

pip経由でインストール

pip install xlsxwriter

conda経由でインストール

conda install xlsxwriter
#または下記のいずれかを実行
conda install -c conda-forge xlsxwriter
conda install -c conda-forge/label/gcc7 xlsxwriter
conda install -c conda-forge/label/cf201901 xlsxwriter
#または
conda install -c anaconda xlsxwriter
スポンサーリンク

XlsxWriterでExcelファイルを新規作成

使い方

1. 新規ワークブックの作成。

workbook = xlsxwriter.Workbook(filename)
  • ファイル名は絶対パスで指定したほうが良い。

2. ワークシートの作成

worksheet = workbook.add_worksheet(sheetname)

3. ワークシートへ書き込み

方法1 : 行と列を指定して書き込み

worksheet.write(row, col, value)
  • row : int
    • 行番号(書き込み行)。row = 0で1行目を選択
  • col : int
    • 列番号(書き込み列)。col= 0 でA列を選択
  • value : numeric, time, string, bool, none 等

方法2: セルを直接指定して書き込み

worksheet.write(cell, value)
  • cell : string
    • セル番地(A1″、”A2″、”B1″など書き込みたい番地)
  • value : numeric, time, string, bool, none 等

4. ワークブックを閉じる

workbook.close()

ソースコード例

import os
import xlsxwriter 
import numpy as np
import pandas as pd
filename = "~/test2.xlsx"
#ファイル名は絶対パスで指定
filename = os.path.expanduser(filename)

X = np.arange(0, 100, 5)
Y = X**2.5
workbook = xlsxwriter.Workbook(filename)
worksheet = workbook.add_worksheet("test02")

row = 0
col = 0
# A1セルに書き込み
worksheet.write(0, col,  "X")
# B1セルに書き込み
worksheet.write(0, col + 1,  "Y")

# C1セルに書き込み
worksheet.write(0, col + 2,  "X2")
# D1セルに書き込み
worksheet.write(0, col + 3,  "Y2")

row  += 1
for x, y in zip(X, Y):
		#行と列を指定して値を書き込み
    worksheet.write(row, col, x) #A2,A3,A4...へ書き込み
    worksheet.write(row, col + 1, y) #B2,B3,B4...へ書き込み
    
    #セルを指定して書き込み
    cell_c = "C" + str(row + 1) #xをC2,C3,C4・・・へ書き込み
    cell_d = "D" + str(row + 1) #yをD2,D3,D4・・・へ書き込む
    worksheet.write(cell_c, x)
    worksheet.write(cell_d, y)
    row += 1
    
workbook.close()
       
XlsxWriterで作成されたxlsxファイル

タイトルとURLをコピーしました