happytails.ai

CSV cell expansion

Open CSV cell expansion on Happytails.ai. This view has the same page content and links, with explicit tool capabilities. Read the processing notes before using a tool.

Tool capabilities

{
  "id": "csv-cell-expansion",
  "category": "data-tools",
  "built": true,
  "requirements": "Choose the column containing lists and enter its literal separator, such as |. Each item becomes a new row, while every other field is copied from the parent record. A new source-record column identifies the original record, starting at 1 after the header. Separated text preserves spaces and empty tokens. If an item contains the list separator, choose JSON array format instead. JSON lists must contain strings, such as [\"red, blue\",\"green\"]. An empty cell or [] can retain one empty row or be dropped. A quoted multiline CSV record still has one source-record number. Review the expanded table and record count. The full result is downloadable as CSV with a JSON report. Oversized expansions fail with an error instead of returning a partial file. Formula protection prefixes potentially executable output strings with an apostrophe; original-string export is available for trusted machine processing.",
  "implementation": {
    "fields": [
      {
        "key": "delimiter",
        "label": "Input CSV separator",
        "value": ",",
        "type": "select",
        "values": [
          ",",
          ";",
          "\t"
        ]
      },
      {
        "key": "column",
        "label": "List column",
        "value": "tags",
        "type": "text"
      },
      {
        "key": "format",
        "label": "List format",
        "value": "Separated text",
        "type": "select",
        "values": [
          "Separated text",
          "JSON array"
        ]
      },
      {
        "key": "itemSeparator",
        "label": "List separator",
        "value": "|",
        "type": "text",
        "help": "A literal separator, such as |. Spaces are preserved. For items containing the separator, use JSON array format.",
        "showWhen": {
          "format": [
            "Separated text"
          ]
        }
      },
      {
        "key": "empty",
        "label": "Empty lists",
        "value": "Keep empty row",
        "type": "select",
        "values": [
          "Keep empty row",
          "Drop row"
        ]
      },
      {
        "key": "sourceColumn",
        "label": "Added source-record column",
        "value": "_source_row",
        "type": "text"
      },
      {
        "key": "exportMode",
        "label": "Spreadsheet formula handling",
        "value": "Protect formulas",
        "type": "select",
        "values": [
          "Protect formulas",
          "Preserve original cells"
        ]
      }
    ],
    "live": true,
    "presentation": "metrics",
    "note": "Expand one list column while copying every other parent field. JSON lists accept arrays of strings only. Source-record numbers start at 1 after the header; a quoted multiline record counts once. Use a header row with unique column names. Up to 1,000,000 input characters, 10,000 data records, 100 columns and 100,000 cells. Strings and spaces are preserved. Output CSV uses commas and quotes every cell. Protect formulas prefixes risky output cells with an apostrophe; choose Preserve original cells only for trusted machine processing. Runs on your device.",
    "experience": {
      "automatic": true,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "CSV",
      "placeholder": "name,score\nAda,98\nSam,92",
      "help": "Include a header row. Quote cells that contain commas or new lines. Results update as you type. Up to 1,000,000 characters.",
      "helpParts": [
        "Include a header row. Quote cells that contain commas or new lines.",
        "Results update as you type.",
        "Up to 1,000,000 characters."
      ],
      "action": null
    },
    "mode": "automatic",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}

Page guide

Turn a list inside one CSV cell into separate rows. Keep the parent fields and a source-record number for each result.

How to use CSV cell expansion
  1. Paste CSV and select the list column by its exact name.
  2. Choose separated text or JSON arrays and decide how to handle empty lists.
  3. Review the expanded rows and source-record numbers, then download the result.

Useful next steps

What to expect

Turn a list inside one CSV cell into separate rows. Keep the parent fields and a source-record number for each result. Choose the column containing lists and enter its literal separator, such as |. Each item becomes a new row, while every other field is copied from the parent record. A new source-record column identifies the original record, starting at 1 after the header. Separated text preserves spaces and empty tokens. If an item contains the list separator, choose JSON array format instead. JSON lists must contain strings, such as ["red, blue","green"]. An empty cell or [] can retain one empty row or be dropped. A quoted multiline CSV record still has one source-record number. Review the expanded table and record count. The full result is downloadable as CSV with a JSON report. Oversized expansions fail with an error instead of returning a partial file. Formula protection prefixes potentially executable output strings with an apostrophe; original-string export is available for trusted machine processing.

Try a small example

id,tags
001,red|blue
002,