> ## Documentation Index
> Fetch the complete documentation index at: https://docs.happycapy.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Editable Spreadsheets

> Open CSV files as editable tables and work on them with Happycapy.

Editable Spreadsheets let you open CSV files as table views directly from the Project Explorer. You can inspect rows, search through structured data, edit cells directly, and keep working with Happycapy in the same conversation.

Use this when a spreadsheet needs both human review and agent help: clean rows, fix values, rename columns, add calculated fields, summarize data, or prepare a report from the edited file.

## Open a CSV from Explorer

Inside a Project, open **Explorer** and select a supported CSV file. Happycapy opens the file on the right as an interactive table instead of a plain text preview.

<div className="hc-workspace-explorer">
  <div className="hc-workspace-shell" style={{ minHeight: '430px' }}>
    <div className="hc-workspace-sidebar" aria-label="Project file browser">
      <div style={{ padding: '14px 16px', borderBottom: '1px solid rgba(46, 41, 41, 0.1)' }}>
        <span style={{ display: 'inline-flex', alignItems: 'center', gap: '8px', padding: '8px 12px', borderRadius: '8px', background: '#eeece9', color: '#2e2929', fontWeight: 650 }}>
          <span className="hc-lucide hc-icon-folder" style={{ color: '#6f6a64', width: '18px', height: '18px' }} />

          Explorer
        </span>
      </div>

      <div style={{ padding: '16px' }}>
        <div style={{ marginBottom: '12px', color: '#a09a93', fontSize: '0.78rem', fontWeight: 750, letterSpacing: '0.08em', textTransform: 'uppercase' }}>File Tree</div>

        <div style={{ display: 'grid', gap: '4px', color: '#6e6861', fontSize: '0.95rem' }} role="tree" aria-label="Project workspace files">
          <div style={{ display: 'flex', alignItems: 'center', gap: '8px', padding: '6px 8px' }} role="treeitem" aria-expanded="true">
            <span style={{ width: '14px', textAlign: 'center', color: '#8a8178' }}>⌄</span>
            <span>memory</span>
          </div>

          <div style={{ display: 'flex', alignItems: 'center', gap: '8px', padding: '6px 8px' }} role="treeitem" aria-expanded="false">
            <span style={{ width: '14px', textAlign: 'center', color: '#8a8178' }}>›</span>
            <span>outputs</span>
          </div>

          <div style={{ display: 'flex', alignItems: 'center', gap: '8px', padding: '6px 8px' }} role="treeitem" aria-expanded="true">
            <span style={{ width: '14px', textAlign: 'center', color: '#8a8178' }}>›</span>
            <span>uploads</span>
          </div>

          <div style={{ display: 'flex', alignItems: 'center', gap: '8px', padding: '7px 8px', borderRadius: '8px', background: '#f1efec', color: '#2e2929', fontWeight: 650 }} role="treeitem" aria-selected="true">
            <span className="hc-lucide hc-icon-file-text" style={{ color: '#6f6a64', width: '18px', height: '18px' }} />

            <span>yc\_companies.csv</span>
          </div>
        </div>
      </div>
    </div>

    <div className="hc-workspace-detail">
      <div style={{ height: '100%', overflow: 'auto' }}>
        <table aria-label="Editable CSV table preview" style={{ width: '100%', minWidth: '720px', borderCollapse: 'separate', borderSpacing: 0, tableLayout: 'fixed', color: '#4d4640', fontSize: '0.88rem' }}>
          <colgroup>
            <col style={{ width: '22%' }} />

            <col style={{ width: '20%' }} />

            <col style={{ width: '36%' }} />

            <col style={{ width: '22%' }} />
          </colgroup>

          <thead>
            <tr style={{ color: '#6f6760', fontWeight: 700 }}>
              <th scope="col" style={{ padding: '0.75rem 0.85rem', textAlign: 'left', borderBottom: '1px solid rgba(45, 36, 27, 0.12)', background: '#fffdf9' }}>Name</th>
              <th scope="col" style={{ padding: '0.75rem 0.85rem', textAlign: 'left', borderBottom: '1px solid rgba(45, 36, 27, 0.12)', background: '#fffdf9' }}>Website</th>
              <th scope="col" style={{ padding: '0.75rem 0.85rem', textAlign: 'left', borderBottom: '1px solid rgba(45, 36, 27, 0.12)', background: '#fffdf9' }}>One-liner</th>
              <th scope="col" style={{ padding: '0.75rem 0.85rem', textAlign: 'left', borderBottom: '1px solid rgba(45, 36, 27, 0.12)', background: '#fffdf9' }}>Industry</th>
            </tr>
          </thead>

          <tbody>
            <tr>
              <td contentEditable suppressContentEditableWarning tabIndex={0} style={{ padding: '0.7rem 0.85rem', borderBottom: '1px solid rgba(45, 36, 27, 0.08)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', cursor: 'text' }}>Ablinitio Bio</td>
              <td contentEditable suppressContentEditableWarning tabIndex={0} style={{ padding: '0.7rem 0.85rem', borderBottom: '1px solid rgba(45, 36, 27, 0.08)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', cursor: 'text' }}>abinitio-bio.com</td>
              <td contentEditable suppressContentEditableWarning tabIndex={0} style={{ padding: '0.7rem 0.85rem', borderBottom: '1px solid rgba(45, 36, 27, 0.08)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', cursor: 'text' }}>Intelligence layer for drug manufacturing</td>
              <td contentEditable suppressContentEditableWarning tabIndex={0} style={{ padding: '0.7rem 0.85rem', borderBottom: '1px solid rgba(45, 36, 27, 0.08)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', cursor: 'text' }}>Healthcare</td>
            </tr>

            <tr>
              <td contentEditable suppressContentEditableWarning tabIndex={0} style={{ padding: '0.7rem 0.85rem', borderBottom: '1px solid rgba(45, 36, 27, 0.08)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', cursor: 'text' }}>Adialante</td>
              <td contentEditable suppressContentEditableWarning tabIndex={0} style={{ padding: '0.7rem 0.85rem', borderBottom: '1px solid rgba(45, 36, 27, 0.08)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', cursor: 'text' }}>adialante.com</td>

              <td contentEditable suppressContentEditableWarning tabIndex={0} style={{ padding: '0.7rem 0.85rem', borderBottom: '1px solid rgba(45, 36, 27, 0.08)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', cursor: 'text', outline: '2px solid #4d4640', outlineOffset: '-4px', borderRadius: '7px', background: '#fffefa' }}>
                Cancer screening without barriers<span aria-hidden="true" style={{ display: 'inline-block', width: '1px', height: '1em', marginLeft: '3px', background: '#2E2929', verticalAlign: '-0.12em' }} />
              </td>

              <td contentEditable suppressContentEditableWarning tabIndex={0} style={{ padding: '0.7rem 0.85rem', borderBottom: '1px solid rgba(45, 36, 27, 0.08)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', cursor: 'text' }}>Healthcare</td>
            </tr>

            <tr>
              <td contentEditable suppressContentEditableWarning tabIndex={0} style={{ padding: '0.7rem 0.85rem', borderBottom: '1px solid rgba(45, 36, 27, 0.08)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', cursor: 'text' }}>Akkari</td>
              <td contentEditable suppressContentEditableWarning tabIndex={0} style={{ padding: '0.7rem 0.85rem', borderBottom: '1px solid rgba(45, 36, 27, 0.08)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', cursor: 'text' }}>akkari.io</td>
              <td contentEditable suppressContentEditableWarning tabIndex={0} style={{ padding: '0.7rem 0.85rem', borderBottom: '1px solid rgba(45, 36, 27, 0.08)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', cursor: 'text' }}>Autonomous customer operations</td>
              <td contentEditable suppressContentEditableWarning tabIndex={0} style={{ padding: '0.7rem 0.85rem', borderBottom: '1px solid rgba(45, 36, 27, 0.08)', whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis', cursor: 'text' }}>B2B</td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
  </div>
</div>

## What You Can Do

You can:

* click a cell and edit the value directly
* search across the table
* scroll through rows and columns
* review row and column counts
* keep the file open while asking Happycapy to analyze or transform it

## Edit by Hand

Open **Explorer** in the Project, select the CSV file, then edit the table on the right. Select a cell, change the value, and continue reviewing the data without leaving the Project conversation.

Manual edits are useful when you already know the correction:

* fix a company name
* normalize a category
* adjust a date or status
* correct a short description
* inspect a specific row before asking Happycapy to continue

## Ask Happycapy to Edit

You can also ask Happycapy to modify the table for you. Describe the transformation you want, and mention the file name when helpful.

```text theme={null}
Open yc_companies.csv, normalize the Industry column, merge similar categories,
and save the cleaned version as outputs/yc_companies_cleaned.csv.
```

Happycapy can help with:

* cleaning inconsistent values
* filtering rows
* renaming or adding columns
* extracting structured fields from text
* calculating new values
* merging or comparing CSV files
* summarizing the table into a report

## Combine Manual and Agent Edits

Editable Spreadsheets work best when you use both modes together.

1. Open the CSV from the Project Explorer and inspect the data.
2. Edit obvious cells yourself.
3. Ask Happycapy to clean or transform the rest.
4. Review the updated file.
5. Ask Happycapy to create a report, chart, or export from the final table.

<Tip>
  If the table is important, ask Happycapy to save a cleaned copy instead of overwriting the original file.
</Tip>

## Related

* [Files](/en/features/files): find uploads, output files, and Project files
* [Projects](/en/features/projects): keep related sessions and files together
* [Dynamic Workflows](/en/features/dynamic-workflows): handle larger multi-stage data tasks
