> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jinba.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Excel操作

> 包括的なExcelファイル操作ツール

## 概要

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データの読み取り

```yaml theme={null}
- 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データの更新

```yaml theme={null}
- 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データ処理ワークフロー

```yaml theme={null}
- 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ファイルを更新する前にデータ形式を検証する
