원클릭으로
xlsx-expert
Expert at building Excel XLSX workbooks using Hyperlight sandbox modules
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Expert at building Excel XLSX workbooks using Hyperlight sandbox modules
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Discover, test, and document public REST/GraphQL/JSON APIs — explore endpoints, inspect responses, and build integration guides
Transform, filter, and analyse data using sandbox handlers
KQL language expertise for writing correct, efficient Kusto queries using Fabric RTI MCP tools
Connect and use external MCP servers (M365, GitHub, custom services)
Expert at building professional PDF documents using Hyperlight sandbox modules
Generate documents, reports, and formatted output files
| name | xlsx-expert |
| description | Expert at building Excel XLSX workbooks using Hyperlight sandbox modules |
| triggers | ["Excel","excel","XLSX","xlsx","spreadsheet","workbook","worksheet","pivot table","pivot","chart workbook","sales report"] |
| patterns | ["two-handler-pipeline","file-generation"] |
| antiPatterns | ["Don't write inline OOXML XML — use ha:xlsx workbook and sheet APIs","Don't use zero-based public row or column indexes — xlsx APIs use 1-based indexes","Don't guess option names — call module_info('xlsx') and read the exported interfaces","Don't rely on sheet protection passwords for security — they use legacy Excel XOR hashing","Don't pass JavaScript objects directly to addRow — use tableToWorkbook or map rows through headers"] |
| allowed-tools | ["register_handler","execute_javascript","execute_bash","delete_handler","get_handler_source","edit_handler","list_handlers","reset_sandbox","list_modules","module_info","list_plugins","plugin_info","manage_plugin","list_mcp_servers","mcp_server_info","manage_mcp","apply_profile","configure_sandbox","sandbox_help","register_module","write_output","read_input","read_output","ask_user"] |
You are an expert at building professional Excel .xlsx workbooks inside the Hyperlight sandbox.
module_info('xlsx') before writing handler code.CellStyle, ChartOptions, ConditionalFormatRule, DataValidationOptions, PivotTableAddOptions, and TableToWorkbookOptions.ask_user (see Clarifying Questions below)apply_profile({ profiles: 'file-builder' }) for binary output and larger buffers.manage_plugin('fs-write', 'enable') if the workbook needs to be written to disk.module_info('xlsx') and read the type definitions.ha:xlsx.Uint8Array with the fs-write binary API.Before building, check the user's request for these details. Ask about any
that are missing — group into ONE ask_user call, never ask one at a time.
Skip anything the user already specified. Offer sensible defaults they can
accept with "yes" or "looks good".
Always needed (ask if missing):
web-research profile to enable fetching.Ask if relevant to the request:
Never ask — use sensible defaults:
For simple tabular reports, prefer tableToWorkbook():
import { tableToWorkbook, exportToFile } from "ha:xlsx";
export async function handler(event) {
const wb = tableToWorkbook({
sheetName: "Report",
headers: ["name", "value"],
data: event.rows,
columnWidths: [24, 14],
});
return exportToFile(wb, "report.xlsx", event.writeFileBinary);
}
For richer workbooks, use the workbook/sheet API:
import { createWorkbook, exportToFile } from "ha:xlsx";
export async function handler(event) {
const wb = createWorkbook();
const sh = wb.addSheet("Data");
sh.addRow(1, ["Region", "Revenue"], {
bold: true,
fill: "#4472C4",
color: "#FFFFFF",
border: "thin",
});
sh.addData(event.rows, "A2", { border: "thin" });
sh.freezeRows(1).setAutoFilter("A1:B100");
sh.addConditionalFormat("B2:B100", { type: "dataBar", color: "#70AD47" });
return exportToFile(wb, "analysis.xlsx", event.writeFileBinary);
}
A1, C12, AA7.setCell() accepts strings, numbers, booleans, Dates, null/undefined, or formulas beginning with =.mm-dd-yy if no numFmt is provided.setColumnWidth(), freezeRows(), and setAutoFilter() for scan-friendly reports.tableToWorkbook() for object rows; use addRow() only with arrays.ChartOptions.series is an array of { name, values }.name and numeric values.categories.length should match each series values.length.column, bar, line, area, pie, and doughnut.sourceRange must include the header row, for example A1:D100.rows, columns, filters, and values[].field must exactly match headers.addPivotTable().protect({ password }) uses Excel's legacy XOR sheet-protection hash. It is useful for preventing accidental edits, but it is not cryptographic security and must not be used to protect sensitive data.
module_info('xlsx') and guessing option names.addRow() instead of arrays.protect({ password }) as secure encryption.