View this page in the latest version of Appian. Create a Spreadsheet Extraction AI Skill Share Share via LinkedIn Reddit Email Copy Link Print On This Page The capabilities described on this page are included in Appian's advanced and premium capability tiers. Usage limits may apply. This topic covers how to create a spreadsheet extraction AI skill to extract structured data from Excel spreadsheets. A spreadsheet extraction skill takes an Excel or CSV file as input, uses generative AI to identify where your data lives, and returns structured JSON with both the extracted values and their cell references. You'll create a spreadsheet extraction AI skill for each type of spreadsheet you want to extract data from. Unlike unstructured document extraction, which processes free-form text and visual elements, spreadsheet extraction is purpose-built for tabular data in Excel and CSV files. The skill works directly with the spreadsheet format, so there's no need to convert files to PDF first. This means you get more accurate results, especially for large datasets and multi-sheet workbooks. This AI skill is also built to be compatible with direct processing in DocCenter and will be available for use in a future release. When to use spreadsheet extraction Use this skill when you need to extract data from Excel files in their native format. This AI skill is a good fit for: Invoices and purchase orders received as XLS, XLSX, or CSV files. Financial reports with data across multiple sheets. Large tabular datasets with hundreds of columns or thousands of rows. Multi-sheet workbooks where data spans several tabs. If your data is in a PDF, image, or other unstructured format, use document extraction instead. If you need to classify, summarize, or generate text, use the Prompt Builder. How it works The spreadsheet extraction skill uses an iterative approach to process your files: You describe the fields you want to extract using natural language in a prompt. The AI model analyzes the spreadsheet structure to locate the relevant data. The system extracts values programmatically from the identified cell locations. The skill returns structured JSON containing both the extracted values and their cell addresses such as Sheet1!B5). This approach reduces processing overhead and improves accuracy compared to sending entire spreadsheet contents to the AI model for analysis. Supported file formats The spreadsheet extraction skill supports the following file formats: XLS XLSX XLSM CSV (supported delimiters: comma, semicolon, tab, and pipe) Create a spreadsheet extraction AI skill Follow these steps to create and configure your spreadsheet extraction skill: Create an AI skill Design the extraction prompt Select a model Test the prompt Refine the prompt (if needed) Save the configuration Use the skill 1. Create an AI skill In the Build view, click NEW > AI Skill. In the Extraction section, select Documents. Select Spreadsheet Extraction. Configure the following properties: Property Description Name Enter a name that follows the recommended naming standard. Description (Optional) Enter a brief description of the AI skill. Click CREATE. On the Review AI Skill Security window, configure security. Click SAVE. The AI skill opens in a new dialog or window. 2. Design the extraction prompt The prompt tells the AI model what fields to extract from your spreadsheet. Use clear, natural language to describe the data you need. Focus on what to extract, not on how the output should be formatted. Go to the Prompt section. Enter a description of the fields you want to extract. Example prompt 1 2 3 4 5 6 7 8 9 Extract the list of properties from this spreadsheet. For each property, extract the following fields: - address: The property address - postalCode: The property postal code - construction: The construction details for the property, including: - floorMaterial: Material used for the floor - wallsMaterial: Material used for the walls - roofMaterial: Material used for the roof - security: Any security measures listed for the property - fireProtection: Any fire protection measures listed for the property Keep these guidelines in mind when writing your prompt: Describe the fields you want to extract. Use natural language, such as: "Extract the vendor name, the invoice date, and the line items table." If the workbook has multiple sheets, specify which sheets contain the data you need. Do not include instructions about JSON structure or output formatting. The skill handles output formatting programmatically. Do not ask the model to perform calculations, aggregations, or summarizations. The skill extracts raw values only. 3. Select a model Select a generative AI model for your skill. Within the AI skill, locate the Settings pane. Under Provider, select the AI provider you want to use. Under Model Selection, click the dropdown to see a list of available models. Choose a model from the list. Note: We recommend using the latest Claude models for the best spreadsheet extraction results. For more details on model selection, see Generative AI Skills. 4. Test the prompt Before using the skill in a process, test it with a sample spreadsheet to verify the results. Within the AI skill, locate the Test area. Upload a sample spreadsheet file (XLS, XLSX, XLSM, or CSV). Click TEST. Review the JSON output to confirm the extracted values and cell references match your expectations. 5. Refine the prompt Based on the test results, adjust your prompt to improve accuracy. You can: Add more detail about where specific fields appear in the spreadsheet. Clarify field names or descriptions to reduce ambiguity. Specify sheet names if the model is extracting from the wrong sheet. Continue testing until the extraction results meet your needs. 6. Save Once the skill returns consistent, accurate results, click SAVE to finalize your configuration. 7. Use the skill With your AI skill configured, you're ready to integrate it into a process. Add the Execute Generative AI Skill smart service and configure it to call your new skill. Understanding the output The spreadsheet extraction skill returns a structured JSON response for every extraction. Each extracted field includes two components: Extracted value: The raw value found in the spreadsheet cell. Cell reference: The sheet name and cell address where the value was found, such as Sheet1!B5. You can use the cell reference to trace extracted data back to its source for validation, reconciliation, or compliance purposes. Note: Do not include instructions about JSON structure or output formatting in your prompt. The skill generates the JSON output programmatically. Extraction types The skill supports three extraction types depending on the structure of the data in your spreadsheet: individual fields, lists, and tables. Individual fields For single key-value pairs, the output includes one value and one cell reference per field. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 { "vendorName": { "value": "Acme Corp", "cell": "Sheet1!B2" }, "invoiceDate": { "value": "2026-01-15", "cell": "Sheet1!B3" }, "totalAmount": { "value": "4500.00", "cell": "Sheet1!B10" } } Lists When a field contains multiple values, the output returns a list of value-cell pairs. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 { "approverNames": [ { "value": "Alex Johnson", "cell": "Approvals!A2" }, { "value": "Maria Chen", "cell": "Approvals!A3" }, { "value": "Sam Patel", "cell": "Approvals!A4" } ] } Tables For tabular data, the output returns rows and columns with a cell reference for each value. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 { "lineItems": [ { "description": { "value": "Widget A", "cell": "Sheet1!A6" }, "quantity": { "value": "100", "cell": "Sheet1!B6" }, "unitPrice": { "value": "12.50", "cell": "Sheet1!C6" } }, { "description": { "value": "Widget B", "cell": "Sheet1!A7" }, "quantity": { "value": "250", "cell": "Sheet1!B7" }, "unitPrice": { "value": "8.75", "cell": "Sheet1!C7" } } ] } Cell reference format Cell references use the format SheetName!CellAddress, where: SheetName is the name of the worksheet tab, such as Sheet1, Approvals, or Invoice Data. CellAddress is the standard Excel cell reference, such as A1, B5, or C12. If a sheet name contains spaces or special characters, it appears in single quotes, such as 'Invoice Data'!B2. Best practices and limitations Best practices Keep these tips in mind to get the most out of your spreadsheet extraction skill: Write prompts that clearly describe the fields you need. The more context you provide, the more accurate the results. Test with a representative sample of your spreadsheets before using the skill in a process. Variations in layout or formatting can affect results. Use cell reference data in the output to validate extracted values against the source spreadsheet. For multi-sheet workbooks, specify the sheet names in your prompt so the model knows where to look. Size and scale The skill supports large datasets, but performance may vary based on the size and complexity of the spreadsheet. Constraint Limit File size 10 MB Maximum number of cells 2 million cells Maximum rows per sheet 40,000 Maximum columns per sheet 200 Maximum sheets per workbook 100 Maximum merged regions 2,000 Maximum JSON response size 25 MB File requirements This skill has the following file requirements: Supported file formats: XLS, XLSX, XLSM, CSV. For CSV files, the following delimiters are supported: comma (,), semicolon (;), tab, and pipe (|). This skill does not support password-protected files. Limitations The spreadsheet extraction skill has the following limitations: AI Guardrails do not apply to spreadsheet extraction. Extracts raw cell values only. The skill does not extract formulas or formula-calculated values. For merged cells, the skill propagates the merged cell value across all corresponding records in the output. Each record references its own cell location, but the value is repeated from the merged cell. The skill does not extract cell styles or formatting information. The skill does not support embedded images or charts. The skill does not perform semantic analysis, summarization, or numerical computation, such as calculating averages or aggregating data. The skill does not support row-level operations like text classification or per-row summarization. The skill does not support complex filtering, querying, or cross-sheet joins. Feedback Was this page helpful? SHARE FEEDBACK Loading...