LoginSignup
0
0

Azure Synapse Analytics で openpyxl を用いて ADLS Gen2 上の Excel ファイルを操作する

Posted at

はじめに

Azure Synapse Analytics では ADLS Gen2 上のファイルを操作できます。
今回は ADLS Gen2 上の Excel ファイルを openpyxl を使用して操作する方法を説明します。

手順

1. ユーザーへの権限付与

ノートブックはワークスペースログインユーザーの権限で実行されます。詳細は こちらの記事 に記載しました。
ストレージ アカウントの IAM 設定より ストレージ BLOB データ共同作成者 の権限を該当ユーザーに付与します。

image.png

2. Excel ファイルの準備

サンプル データ Book1.xlsx を ADLS Gen2 に格納します。

image.png

image.png

3. コード実行

Synapse Studio にて以下のコードを実行して、ファイルの読み書きを行います。
なお、ダウンロードしたファイルをそのまま編集してアップロードすると ChecksumException エラーとなるため、Book2.xlsx に一度コピーして編集を行います。

import openpyxl
from notebookutils import mssparkutils
import shutil

mssparkutils.fs.cp('abfss://container@storageaccount.dfs.core.windows.net/xlsx/Book1.xlsx', 'file:/tmp/')
shutil.copyfile('/tmp/Book1.xlsx','/tmp/Book2.xlsx')
wb = openpyxl.load_workbook('/tmp/Book2.xlsx')

ws = wb['Sheet1']
data_from = ws['A1'].value
print('data_from: ' + data_from)

ws['A1'] = 'fuga'
data_to = ws['A1'].value
print('data_to: ' + data_to)

wb.save('/tmp/Book2.xlsx')
result = mssparkutils.fs.cp('file:/tmp/Book2.xlsx', 'abfss://container@storageaccount.dfs.core.windows.net/xlsx/Book1.xlsx')
print('result: ' + str(result))

image.png

4. 編集した Excel ファイルの確認

手順 3 で ADLS Gen2 にアップロードした Excel ファイルを手元にダウンロードし、データが正しく編集されていることを確認します。

image.png

おわりに

Azure Synapse Analytics で openpyxl を用いて ADLS Gen2 上の Excel ファイルを操作する方法を説明しました。ファイルをそのまま編集するのではなく、一度別ファイルにコピーする必要があることに注意しましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0