概要

Excelツールは、Excelファイル(.xlsx)を操作するための包括的な機能を提供します。データの読み取り、セルの更新、特定の行の取得、URLからのExcelファイルの操作が可能です。

主な機能

  • EXCEL_GET_ROWS
    • Excelシートから複数の行を取得
  • EXCEL_GET_ROW
    • Excelシートから特定の行を取得
  • EXCEL_GET_CELL_WITH_COORDINATE
    • 特定のセル座標から値を取得
  • EXCEL_UPDATE
    • 範囲選択を使用してExcelファイルを新しいデータで更新
  • EXCEL_UPDATE_BY_COORDINATE
    • 座標ベースの配置を使用して特定のセルを更新

認証

認証は不要です。ExcelツールはファイルURLで直接動作します。

例: Excelデータの読み取り

- id: get_excel_rows
  name: get_excel_rows
  tool: EXCEL_GET_ROWS
  input:
    - name: url
      value: "https://example.com/data.xlsx"
    - name: sheetName
      value: "Sheet1"
    - name: startRow
      value: 2
    - name: endRow
      value: 10

- id: get_specific_row
  name: get_specific_row
  tool: EXCEL_GET_ROW
  input:
    - name: url
      value: "https://example.com/data.xlsx"
    - name: sheetName
      value: "Sheet1"
    - name: rowIndex
      value: 5

- id: get_cell_value
  name: get_cell_value
  tool: EXCEL_GET_CELL_WITH_COORDINATE
  input:
    - name: url
      value: "https://example.com/data.xlsx"
    - name: sheetName
      value: "Sheet1"
    - name: coordinate
      value: "B5"

例: Excelデータの更新

- id: update_excel_range
  name: update_excel_range
  tool: EXCEL_UPDATE
  input:
    - name: url
      value: "https://example.com/template.xlsx"
    - name: sheetName
      value: "Data"
    - name: startCell
      value: "A2"
    - name: endCell
      value: "C4"
    - name: data
      value: [
        ["田中太郎", "マネージャー", "50000"],
        ["佐藤花子", "開発者", "60000"],
        ["鈴木一郎", "デザイナー", "45000"]
      ]

- id: update_specific_cell
  name: update_specific_cell
  tool: EXCEL_UPDATE_BY_COORDINATE
  input:
    - name: url
      value: "https://example.com/report.xlsx"
    - name: sheetName
      value: "Summary"
    - name: coordinate
      value: "E10"
    - name: value
      value: "{{steps.calculate_total.result.sum}}"

例: Excelデータ処理ワークフロー

- id: read_source_data
  name: read_source_data
  tool: EXCEL_GET_ROWS
  input:
    - name: url
      value: "{{secrets.EXCEL_SOURCE_URL}}"
    - name: sheetName
      value: "RawData"
    - name: startRow
      value: 2
    - name: endRow
      value: 100

- id: process_data
  name: process_data
  tool: PYTHON_SANDBOX_RUN
  input:
    - name: script
      value: |
        import json
        
        # 前のステップからデータを取得
        raw_data = {{steps.read_source_data.result.data}}
        
        # データを処理・変換
        processed_data = []
        for row in raw_data:
            if row[0] and row[1]:  # 名前と値が存在するかチェック
                processed_data.append([
                    row[0].upper(),  # 名前を大文字に
                    float(row[1]) * 1.1,  # 値を10%増加
                    "処理済み"
                ])
        
        print(json.dumps({"processed_data": processed_data}))

- id: update_target_excel
  name: update_target_excel
  tool: EXCEL_UPDATE
  input:
    - name: url
      value: "{{secrets.EXCEL_TARGET_URL}}"
    - name: sheetName
      value: "ProcessedData"
    - name: startCell
      value: "A2"
    - name: data
      value: "{{steps.process_data.result.processed_data}}"

ヒントとベストプラクティス

  • 間違ったシートで作業しないよう、常にシート名を指定する
  • 正確なセル参照にはA1、B2などの座標記法を使用する
  • 範囲を更新する際は、データ配列の次元が指定された範囲と一致することを確認する
  • 大きなデータセットの場合、タイムアウトを避けるためにデータをチャンクで処理することを検討する
  • エラーを防ぐため、Excelファイルを更新する前にデータ形式を検証する