Docly Child

ExcelOnlineファイルを取得・編集する

643 views

※本記事で解説する内容は「ExcelOnline」に属するアクション群となります。
「ExcelOnline(OneDrive/SharePoint上のxlsxブック対象アクション)」が該当します。
AUTOROのローカルストレージや、OneDrive/SharePointを除く外部ストレージ内に存在するExcelファイルを操作する場合は、こちらをご参照ください。

この記事では、ExcelOnlineファイルを取得・編集する際の一連の流れを解説します。


 ワークフローの設定例

例として、下記画像のような処理を実行する際の流れを解説します。

※A列2行目以下をC列2行目以下にコピーアンドペーストしています。

下記手順にてワークフローを設定します。

Excelファイルを取得します。このために、「ワークブックを取得する(GetWorkbook)」アクションを使用します。

・「provider」に、コネクション連携済みのIDを指定(コネクション登録についてはこちら
・「workbook_id」に、任意のExcelファイルを指定

※コネクション連携するアカウントがオーナーでない共有ワークブックの場合は、workbook_idに共有URLを入力してください。

 

今回のサンプルでは、A列2行目以下を取得し、その値をそのままC列2行目以下に貼り付けています(単純なコピーアンドペーストです)。

よって、A列2行目以下を「セルの値を取得する(GetWorksheetCells)」アクションを使用して取得する必要があります。

指定範囲

[シート名]!A2:A

なお、読み込んだ情報を1行ずつ処理したい場合は、「各要素を繰り返す」をご使用下さい。

繰り返し(ForEach)

 

2で取得した情報を、C列に転記します。

今回は、シート1にそのまま貼り付けるだけとなるため、「セルの値を更新する(UpdateWorksheetCells)」アクションを1つ使用して、以下のような形で書き込みます。

指定範囲(書き込み位置のセルラベル)

[シート名]!C2

これでシートの編集は終了です

ExcelOnline系のアクション内において、半角カッコ()から始まるシート名をパラメータに指定すると、仕様によりエラーとなることが確認されています。

ただし既にシートIDが判明しているときは、IDを指定することで成功します。
シートIDは、下記画像のようにGetWorkbookアクションの実行結果から取得できる場合があります。

 

# ワークブックを取得する
+get_workbook_1:
  action>: GetWorkbook
  provider: ''
  workbook_id: ''
  private: false

# セルの値を取得する
+get_worksheet_cells_1:
  action>: GetWorksheetCells
  workbook: +get_workbook_1
  range: 'Sheet1!A2:A'
  findAll: false
  private: false

# セルの値を更新する
+update_worksheet_cells_1:
  action>: UpdateWorksheetCells
  workbook: +get_workbook_1
  range: 'Sheet1!C2'
  values: +get_worksheet_cells_1
  private: false
# ワークブックを取得する
+get_workbook_1:
  action>: GetWorkbook
  provider: ''
  workbook_id: ''
  private: false

# セルの値を取得する
+get_worksheet_cells_1:
  action>: GetWorksheetCells
  workbook: +get_workbook_1
  range: 'Sheet1!A2:A'
  findAll: false
  private: false

# 各要素について繰り返す
+for_each_1:
  for_each>:
    row: +get_worksheet_cells_1
    withIndex: rowIndex
  _do:

    # セルの値を更新する
    +update_worksheet_cells_1:
      action>: UpdateWorksheetCells
      workbook: +get_workbook_1
      range: 'Sheet1!C${rowindex+2}'
      values: ${row}
      private: false

<Excel>エクセル/ミドルウェア

このページは役に立ちましたか?