Google スプレッドシート用のオープンソース Python API

Excel から Python を簡単に呼び出すことができる Python ライブラリ。

Xlwings は、Excel ファイル形式を操作するためのオープン ソースの Python API です。 API を使用すると、Python から Excel を自動化し、レポートを作成したり、UDF (ユーザー定義関数) を作成したり、マクロを作成したり、Excel をリモートで制御したりできます。さらに、この API を使用すると、セル、リスト、範囲、NumPy 配列、パンダ データ フレーム、パンダ シリーズなどのデータ構造を操作できます。

Xlwings には Microsoft Excel のインストールが必要なため、UDF が Windows でのみ機能することを除いて、すべてが Windows と macOS で機能します。

Previous Next

Xlwings を使い始める

xlwings をスムーズに実行するには、システムに Python 3.5 以降がインストールされている必要があります。 PIP 経由でインストールするための推奨される方法。次のコマンドを使用してください。

PIP コマンドで Xlwings をインストールする

pip install xlwings

Conda経由でXlwingsをインストールする

conda install xlwings

Python から Excel を操作する

Xlwings API を使用すると、Python を使用して Microsoft スプレッドシートを操作できます。 API を使用すると、既存のワークブックに接続したり、xlwings.Book() メソッドを使用して新しいワークブックを作成したりできます。範囲との間で値の読み取り/書き込み、範囲の拡張、データ型の変換を簡単に行うことができます。さらに、Matplotlib & Plotly チャートを Excel ワークブックに画像として追加できます。

PythonでExcelレンジの寸法を動的に取得

sheet = xw.Book().sheets[0]
sheet['A1'].value = [[1,2], [3,4]]
range1 = sheet['A1'].expand('table')  # or just .expand()
range2 = sheet['A1'].options(expand='table')
range1.value
[[1.0, 2.0], [3.0, 4.0]]
range2.value
[[1.0, 2.0], [3.0, 4.0]]
sheet['A3'].value = [5, 6]
range1.value
[[1.0, 2.0], [3.0, 4.0]]
range2.value

Excel から Python を呼び出す

オープン ソースのスプレッドシート ライブラリ Xlwings を使用すると、ソフトウェア開発者は Excel 経由で Python と通信できます。 Xlwings Excel アドインの [実行] ボタンを使用するか、RunPython VBA 関数を使用して、Excel 内で Python 関数を呼び出すことができます。 Excel アドインを使用する利点は、ワークブックをマクロ有効にする必要がなく、xlsx として保存できることです。

Python Script を使用して、Microsoft Excel で R コードをインサート

import tempfile
import segno
import xlwings as xw
# Update this with the name of your workbook
book = xw.Book('qr.xlsx')
sheet = xw.sheets[0]
# Update this with the starting cell of your URLs
start_cell = sheet['A1']
urls = start_cell.options(expand='down', ndim=1).value
# Loop through each URL and generate the QR code
for ix, url in enumerate(urls):
    # Generate the QR code
    qr = segno.make(url)
    with tempfile.TemporaryDirectory() as td:
        # Save the QR code as a temporary svg file. If you are on macOS, use pdf
        # instead and if you don't have Microsoft 365, you may have to use png
        filepath = f'{td}/qr.svg'
        qr.save(filepath, scale=5, border=0, finder_dark='#15a43a')
        # Insert the QR code to the right of the URL
        destination_cell = start_cell.offset(row_offset=ix, column_offset=1)
        sheet.pictures.add(filepath,
                           left=destination_cell.left,
                           top=destination_cell.top)

Python を使用した Excel のユーザー定義関数 (UDF)

Xlwings ライブラリを使用すると、開発者は Microsoft Excel ファイル形式内にユーザー定義関数 (UDF) をプログラムで書き込むことができます。現在、UDF は Windows でのみ使用できます。この API では、単純な関数、配列の次元数、動的配列数式、NumPy を使用した arrya 数式などを使用できます。

Microsoft Excel で RunPython 経由でマルコを呼び出す方法

import xlwings as xw
@xw.sub
def my_macro():
    """Writes the name of the Workbook into Range("A1") of Sheet 1"""
    wb = xw.Book.caller()
    wb.sheets[0].range('A1').value = wb.name
 日本