PythonでExcelを操作するためのライブラリとして、xlwingsopenpyxlがよく使われます。これらのライブラリはそれぞれ異なる特性と利点を持っています。

xlwingsとopenpyxlの違い

xlwingsは、本家Excelをプロセス間通信で制御するライブラリで、COMアーキテクチャが使われています。一方、openpyxlはExcelとの互換性に難ありますが、カバーできる環境が広く、Linuxサーバでも動作します。

以下に、xlwingsopenpyxlの主な違いを示します。

項目 openpyxl xlwings
動作環境 Linux / MacOS / Windows Windows
Excel 不要 必要
サポートしているファイル形式 Excel 2010 の xlsx/xlsm/xltx/xltm Excelがサポートする形式全て
処理速度 ×

openpyxlとxlwingsの使用例

以下に、openpyxlxlwingsを使用したPythonコードの例を示します。

# openpyxlの例
import openpyxl as px

# ブックを開く
wb = px.load_workbook('book.xlsx', data_only=True)
ws = wb['Sheet1']

# 使用範囲の値(tuple)を取得して出力
print(tuple(ws.values))

# セルを行毎に得て値を出力
for row in ws.rows:
    print([c.value for c in row])

# ブックを閉じる
wb.close()
# xlwingsの例
import xlwings as xw

# 新規Excelインスタンスでブックを開く
app = xw.App()
wb = app.books.open('book.xlsx')
ws = wb.sheets[0]

now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
for row in range(10000):
    ws.cells(row+1, 1).value = now_time

# 保存
wb.save('.\\\\xlwings.xlsx')

# プロセスを削除
wb.close()

これらのライブラリを選択する際は、自分の要件と環境に最も適したものを選ぶことが重要です。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です