format_cell
Set cell formatting in Excel files, including font styles, fill colors, and borders, for precise customization of spreadsheets.
Instructions
セルの書式(フォント、塗りつぶし、罫線)を設定します
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cell | Yes | セル位置(例: A1) | |
| filePath | Yes | Excelファイルのパス | |
| format | Yes | セルの書式設定 | |
| sheetName | Yes | ワークシート名 |
Implementation Reference
- src/index.ts:345-401 (handler)The core handler function that loads the Excel workbook, retrieves the worksheet and cell, applies font, fill, and border formatting using ExcelJS, saves the file, and returns a success message.async function formatCell(filePath: string, sheetName: string, cell: string, format: any): Promise<string> { try { const workbook = await loadWorkbook(filePath); const worksheet = workbook.getWorksheet(sheetName); if (!worksheet) { throw new Error(`ワークシート '${sheetName}' が見つかりません。`); } const targetCell = worksheet.getCell(cell); // フォント設定 if (format.font) { const fontFormat: any = {}; if (format.font.bold !== undefined) fontFormat.bold = format.font.bold; if (format.font.size) fontFormat.size = format.font.size; if (format.font.color) { fontFormat.color = { argb: format.font.color }; } targetCell.font = fontFormat; } // 背景色設定 if (format.fill) { if (format.fill.type === 'pattern') { const fillFormat: any = { type: 'pattern', pattern: format.fill.pattern || 'solid' }; if (format.fill.fgColor) { fillFormat.fgColor = { argb: format.fill.fgColor }; } if (format.fill.bgColor) { fillFormat.bgColor = { argb: format.fill.bgColor }; } targetCell.fill = fillFormat; } else { // 簡単な背景色設定 targetCell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: format.fill.fgColor || format.fill } }; } } // 罫線設定 if (format.border) { targetCell.border = format.border; } await workbook.xlsx.writeFile(filePath); return `セル ${cell} の書式を設定しました。`; } catch (error) { throw new McpError(ErrorCode.InternalError, `セル書式設定エラー: ${error}`); } }
- src/index.ts:56-79 (schema)Zod schema defining the input structure for the format_cell tool, including filePath, sheetName, cell, and detailed format options for font, fill, and border.const FormatCellSchema = z.object({ filePath: z.string().describe("Excelファイルのパス"), sheetName: z.string().describe("ワークシート名"), cell: z.string().describe("セル位置(例: A1)"), format: z.object({ font: z.object({ bold: z.boolean().optional().describe("太字設定"), italic: z.boolean().optional().describe("斜体設定"), size: z.number().optional().describe("フォントサイズ"), color: z.string().optional().describe("フォント色(ARGB形式)"), }).optional().describe("フォント設定"), fill: z.object({ type: z.literal("pattern").describe("塗りつぶしタイプ"), pattern: z.string().describe("パターン(solid等)"), fgColor: z.string().describe("前景色(ARGB形式)"), }).optional().describe("塗りつぶし設定"), border: z.object({ top: z.object({ style: z.string(), color: z.string() }).optional(), left: z.object({ style: z.string(), color: z.string() }).optional(), bottom: z.object({ style: z.string(), color: z.string() }).optional(), right: z.object({ style: z.string(), color: z.string() }).optional(), }).optional().describe("罫線設定"), }).describe("セルの書式設定"), });
- src/index.ts:501-505 (registration)Tool registration in the ListTools response, providing name, description, and input schema reference.{ name: "format_cell", description: "セルの書式(フォント、塗りつぶし、罫線)を設定します", inputSchema: zodToJsonSchema(FormatCellSchema) },
- src/index.ts:555-558 (registration)Wrapper function in the toolImplementations map that parses input arguments using the schema and delegates to the formatCell handler. Used by the CallToolRequestSchema handler.format_cell: async (args: any) => { const { filePath, sheetName, cell, format } = FormatCellSchema.parse(args); return await formatCell(filePath, sheetName, cell, format); },