OpenSpace reliable-excel-workbook-creation
Use run_shell with cd and heredoc syntax for complex Excel operations when read_file fails on XLSX or execute_code_sandbox fails on multi-step workbook creation
install
source · Clone the upstream repo
git clone https://github.com/HKUDS/OpenSpace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HKUDS/OpenSpace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/gdpval_bench/skills/reliable-excel-workbook-creation" ~/.claude/skills/hkuds-openspace-reliable-excel-workbook-creation && rm -rf "$T"
manifest:
gdpval_bench/skills/reliable-excel-workbook-creation/SKILL.mdsource content
Reliable Excel Workbook Creation via Shell
When to Use This Pattern
Use this technique when you need to:
- Create complex Excel workbooks with multiple sheets
- Perform multi-step workbook operations (create, populate, format, save)
- Work with XLSX files that
cannot handle properlyread_file - Avoid failures from
on persistent file operationsexecute_code_sandbox
Avoid:
read_file for XLSX files, execute_code_sandbox for multi-step workbook creation
Core Pattern
cd /workspace && python3 << 'EOF' from openpyxl import Workbook # Your Excel operations here wb = Workbook() # ... create sheets, add data, save wb.save('/workspace/filename.xlsx') EOF
Step-by-Step Instructions
Step 1: Change to Workspace Directory
Always start with
cd /workspace && to ensure file paths resolve correctly.
Step 2: Use Heredoc with Single-Quoted EOF
Use
<< 'EOF' (single quotes) to prevent shell variable expansion within the Python code.
Step 3: Write Complete Python Script
Include all imports, workbook creation, data population, and save operations in one script.
Step 4: Use Absolute Paths for Save Operations
Always save with full path:
/workspace/your_filename.xlsx
Complete Example
cd /workspace && python3 << 'EOF' from openpyxl import Workbook from openpyxl.styles import Font, Alignment, PatternFill # Create workbook wb = Workbook() # Create multiple sheets sheets = ['Summary', 'Data', 'Analysis', 'Settings'] for sheet_name in sheets: wb.create_sheet(title=sheet_name) # Remove default sheet if needed if 'Sheet' in wb.sheetnames: del wb['Sheet'] # Populate data ws = wb['Data'] ws['A1'] = 'Item' ws['B1'] = 'Value' ws['A2'] = 'Revenue' ws['B2'] = 100000 # Apply formatting header_font = Font(bold=True) for cell in ws['1:1']: cell.font = header_font # Save workbook wb.save('/workspace/report.xlsx') print('Workbook created successfully: /workspace/report.xlsx') EOF
Why This Works
| Approach | Problem | Solution |
|---|---|---|
| Cannot parse XLSX binary format | Don't use for Excel files |
| File persistence issues, multi-step failures | Use instead |
with heredoc | ✓ Reliable, full control, persistent files | Use this pattern |
Common Operations
Create Multi-Sheet Workbook
cd /workspace && python3 << 'EOF' from openpyxl import Workbook wb = Workbook() sheet_names = ['Sheet1', 'Sheet2', 'Sheet3'] for name in sheet_names: wb.create_sheet(title=name) wb.save('/workspace/multi_sheet.xlsx') EOF
Read and Modify Existing Workbook
cd /workspace && python3 << 'EOF' from openpyxl import load_workbook wb = load_workbook('/workspace/existing.xlsx') ws = wb.active ws['A1'] = 'Updated Value' wb.save('/workspace/existing.xlsx') EOF
Add Formulas
cd /workspace && python3 << 'EOF' from openpyxl import Workbook wb = Workbook() ws = wb.active ws['A1'] = 100 ws['A2'] = 200 ws['A3'] = '=SUM(A1:A2)' wb.save('/workspace/with_formulas.xlsx') EOF
Troubleshooting
- File not found: Ensure you use
prefix in all paths/workspace/ - Permission errors: Verify workspace directory is writable
- Module not found: openpyxl is pre-installed in the environment
- Heredoc issues: Use single-quoted
to prevent shell interpretation'EOF'
Best Practices
- Always use absolute paths (
)/workspace/filename.xlsx - Single-quoted heredoc (
) prevents variable expansion<< 'EOF' - Complete script in one heredoc - avoid splitting operations
- Print confirmation after save to verify success
- Handle exceptions for production scripts