Skip to main content
Glama

set_range_values

Set a 2D array of data into a specified Excel range. Define the start cell, sheet name, and file path to populate values efficiently. Ideal for structured data entry in spreadsheets.

Instructions

指定された範囲に2次元配列のデータを設定します

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filePathYes対象のExcelファイルの絶対パス
sheetNameYes対象のワークシート名
startCellYesデータ入力を開始するセル位置(例: A1)。ここから右下方向にデータが入力されます
valuesYes2次元配列のデータ。外側の配列が行、内側の配列が列を表します。例: [["商品名", "価格"], ["商品A", 1000]]

Implementation Reference

  • Core handler function that implements the logic to set a 2D array of values into an Excel worksheet starting from a given cell position.
    async function setRangeValues(filePath: string, sheetName: string, startCell: string, values: any[][]): Promise<string> { try { validateCellAddress(startCell); if (!Array.isArray(values) || values.length === 0) { throw new Error("valuesは空でない2次元配列である必要があります"); } // 2次元配列の検証 for (let i = 0; i < values.length; i++) { if (!Array.isArray(values[i])) { throw new Error(`${i+1}行目が配列ではありません。2次元配列を指定してください`); } } const workbook = await loadWorkbook(filePath); const worksheet = workbook.getWorksheet(sheetName); if (!worksheet) { throw new Error(`ワークシート '${sheetName}' が見つかりません。利用可能なシート: ${getSheetNames(workbook)}`); } const startCellObj = worksheet.getCell(startCell); const startRow = startCellObj.row; const startCol = startCellObj.col; for (let i = 0; i < values.length; i++) { for (let j = 0; j < values[i].length; j++) { worksheet.getCell(startRow + i, startCol + j).value = values[i][j]; } } await workbook.xlsx.writeFile(filePath); return `範囲 ${startCell} から ${values.length}行 x ${values[0].length}列 のデータを設定しました。`; } catch (error) { throw new McpError(ErrorCode.InternalError, `範囲値設定エラー: ${error}`); } }
  • Zod schema defining the input parameters and validation for the set_range_values tool.
    const SetRangeValuesSchema = z.object({ filePath: z.string().describe("対象のExcelファイルの絶対パス"), sheetName: z.string().describe("対象のワークシート名"), startCell: z.string().describe("データ入力を開始するセル位置(例: A1)。ここから右下方向にデータが入力されます"), values: z.array(z.array(z.union([z.string(), z.number(), z.boolean()]))).describe("2次元配列のデータ。外側の配列が行、内側の配列が列を表します。例: [[\"商品名\", \"価格\"], [\"商品A\", 1000]]"), });
  • src/index.ts:492-495 (registration)
    Registration of the tool in the list_tools response, including name, description, and input schema.
    name: "set_range_values", description: "指定された範囲に2次元配列のデータを設定します", inputSchema: zodToJsonSchema(SetRangeValuesSchema) },
  • src/index.ts:547-550 (registration)
    Tool implementation registration in the toolImplementations map, which handles argument parsing and delegates to the core handler.
    set_range_values: async (args: any) => { const { filePath, sheetName, startCell, values } = SetRangeValuesSchema.parse(args); return await setRangeValues(filePath, sheetName, startCell, values); },

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SuperPyonchiX/excel_mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server