# 插入数据

在电子表格工作表的指定范围的起始位置上方增加若干行，并在该范围中填充数据。

## 使用限制

- 单次写入数据不可超过 5,000 行、100 列。
- 每个单元格不可超过 50,000 字符，由于服务端会增加控制字符，因此推荐每个单元格不超过 40,000 字符。
## 前提条件

调用此接口前，请确保当前调用身份（tenant_access_token 或 user_access_token）已有电子表格的编辑等文档权限，否则接口将返回 HTTP 403 或 400 状态码。了解更多，参考[如何为应用或用户开通文档权限](https://open.feishu.cn/document/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#16c6475a)。
## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/:spreadsheetToken/values_prepend
HTTP Method | POST
接口频率限制 | [100 次/秒](https://open.feishu.cn/document/ukTMukTMukTM/uUzN04SN3QjL1cDN)
支持的应用类型 | Custom App、Store App
权限要求<br>**调用该 API 所需的权限。开启其中任意一项权限即可调用**<br>开启任一权限即可 | 查看、评论、编辑和管理云空间中所有文件(drive:drive)<br>查看、评论、编辑和管理电子表格(sheets:spreadsheet)

### 请求头

名称 | 类型 | 必填 | 描述
---|---|---|---
Authorization | string | 是 | 通过访问凭证（access_token）对调用者身份进行鉴权。可选值：<br>- `tenant_access_token`：        租户授权凭证。应用代表租户（即企业或团队）执行对应操作。示例值："Bearer t-7f1bcd13fc57d46bac21793aabcef"<br>- `user_access_token`：用户授权凭证。应用代表用户执行对应操作。示例值："Bearer u-7f1bcd13fc57d46bac21793aabcef"<br>了解更多，参考[获取访问凭证](https://open.feishu.cn/document/ukTMukTMukTM/uMTNz4yM1MjLzUzM)。
Content-Type | string | 是 | **固定值**："application/json; charset=utf-8"

### 路径参数

名称 | 类型 | 必填 | 描述
---|---|---|---
spreadsheetToken | string | 是 | 电子表格的 token。可通过以下两种方式获取。了解更多，参考[电子表格概述](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/overview)。<br>- 电子表格的 URL：https://sample.feishu.cn/sheets/==Iow7sNNEphp3WbtnbCscPqabcef==<br>- 调用[获取文件夹中的文件清单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/file/list)<br>**示例值**："Iow7sNNEphp3WbtnbCscPqabcef"

### 请求体

名称 | 类型 | 必填 | 描述
---|---|---|---
valueRange | / | 是 | 指定工作表中的范围和在该范围中插入的数据。
range | string | 是 | 指定范围，用于写入数据。格式为 `<sheetId>!<开始位置>:<结束位置>`。其中：<br>- `sheetId` 为工作表 ID，通过[获取工作表](https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet/query) 获取。<br>- `<开始位置>:<结束位置>` 为工作表中单元格的范围，数字表示行索引，字母表示列索引。如 `A2:B2` 表示该工作表第 2 行的 A 列到 B 列。`range`支持四种写法，详情参考[电子表格概述](https://open.feishu.cn/document/ukTMukTMukTM/uATMzUjLwEzM14CMxMTN/overview)。<br>**注意**：`range` 所指定的范围需要大于等于插入的数据所占用的范围。但最终增加的行数由 `value` 决定。<br>**示例值**：`8fe9d6!A2:B5`。该示例值表示在 ID 为 `8fe9d6` 的工作表的第二行（由起始行 A2 决定）上方新增至多四行，在新增行的 A 列和 B 列插入数据。若插入的数据仅有三行，则最终将在第二行上方新增三行。
values | array<array<interface>> | 是 | 插入的数据。如要写入公式、超链接、email、@人等，可参考[支持写入数据类型](https://open.feishu.cn/document/ukTMukTMukTM/ugjN1UjL4YTN14CO2UTN)。

### 请求体示例
```json
{
  "valueRange": {
    "range": "Q7PlXT!C6:F9",
    "values": [
      [
        "string",
        1,
        "http://www.xx.com"
      ]
    ]
  }
}
```

### cURL 请求示例
```
curl --location --request POST 'https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/shtcngNygNfuqhxTBf588jwgWbJ/values_prepend' \
--header 'Authorization: Bearer t-e346617a4acfc3a11d4ed24dca0d0c0fc8e0067e' \
--header 'Content-Type: application/json' \
--data-raw '{
"valueRange":{
  "range": "Q7PlXT!C6:F9",
  "values": [
    [
      "a",1,"http://www.xx.com",12
    ],
    [
      "b",2,8,"me@HelloWorld.com"
    ],
    [
      "c",3,2,6
    ],
    [
      "d",4,6,"@Jack"
    ]
  ]
  }
}'
```

## 响应
### 响应体

名称 | 类型 | 描述
---|---|---
code | int | 错误码，非 0 表示失败
msg | string | 错误描述
data | \- | \-
spreadsheetToken | string | 电子表格的 token
tableRange | string | 插入数据的范围
revision | int | 工作表的版本号。从 0 开始计数，更新一次版本号加一。
updates | / | 插入数据的范围、更新的行列总数等
spreadsheetToken | string | 电子表格的 token
updatedRange | string | 插入数据的范围
updatedRows | int | 更新的行总数
updatedColumns | int | 更新的列总数
updatedCells | int | 更新的单元格总数
revision | int | 工作表的版本号。从 0 开始计数，更新一次版本号加一。

### 响应体示例  
```json
{
  "code": 0,
  "data": {
    "revision": 18,
    "spreadsheetToken": "GQJHsEgcoh2qDHtSxeKcJCabcef",
    "tableRange": "6e5ed3!A1:C1",
    "updates": {
      "revision": 18,
      "spreadsheetToken": "GQJHsEgcoh2qDHtSxeKcJCabcef",
      "updatedCells": 3,
      "updatedColumns": 3,
      "updatedRange": "6e5ed3!A1:C1",
      "updatedRows": 1
    }
  },
  "msg": "success"
}
```
### 错误码

具体可参考：[服务端错误码说明](https://open.feishu.cn/document/ukTMukTMukTM/ugjM14COyUjL4ITN)

