Authoring data collection forms in Excel for mobile surveys. XLSForm converts Excel files to XForms for ODK, KoBoToolbox, and similar platforms. Use for field surveys, data collection, conditional forms, GPS tracking, and offline data gathering.
View on GitHubmberg/claude-skills
cortex
skills/xlsform/SKILL.md
January 20, 2026
Select agents to install to:
npx add-skill https://github.com/mberg/claude-skills/blob/main/skills/xlsform/SKILL.md -a claude-code --skill xlsformInstallation paths:
.claude/skills/xlsform/# XLSForm Skill ## What is XLSForm? XLSForm is a simple, human-friendly form standard that lets you design data collection forms in Excel. Your forms convert to XForm (XML) and work with mobile platforms like ODK Collect, KoBoToolbox, SurveyCTO, and Enketo. Perfect for surveys, GPS tracking, offline data gathering, and complex conditional logic. ## Five Key Concepts 1. **Survey Sheet** - Lists your questions (type, name, label). One row per question. 2. **Choices Sheet** - Defines answer options for select_one and select_multiple questions. 3. **Question Types** - 20+ types: text, integer, select_one, geopoint, image, date, calculate, and more. 4. **Skip Logic** - The `relevant` column shows/hides questions based on previous answers. 5. **Calculations** - The `calculate` question type and `calculation` column compute derived values. ## Minimal Working Example **Survey Sheet:** | type | name | label | |------|------|-------| | text | respondent_name | What is your name? | | integer | age | How old are you? | | select_one yes_no | consent | Do you agree? | | calculate | timestamp | now() | **Choices Sheet:** | list_name | name | label | |-----------|------|-------| | yes_no | yes | Yes | | yes_no | no | No | This creates a 3-question form with a hidden timestamp calculation. ## Essential Constraints | Aspect | Limit | Note | |--------|-------|------| | Question name | 255 chars | Alphanumeric + underscore only | | Label/hint | No hard limit | Practical: keep under 500 chars | | Choices per list | No hard limit | ~100+ works well | | Calculation expression | ~2000 chars | Complex expressions may slow form | | Form size | No hard limit | Very large forms (500+ questions) may be slow | | Languages | Unlimited | Use label::language, hint::language syntax | ## Core Reference Files Detailed documentation organized by topic: **Form Structure:** - [survey-sheet.md](reference/survey-sheet.md) - Survey worksheet columns and structure - [choices-sheet.md](reference/