Clipboard Transformer icon

Clipboard Transformer

Extension Actions

How to install Open in Chrome Web Store
CRX ID
pkjdhfnaigpgjnkmbhjlgkdooengflbk
Description from extension meta

Detect and convert clipboard data between TSV (Sheets), CSV, JSON, and a simple JOOQ-like format from the extension popup.

Image from store
Clipboard Transformer
Description from store

# Clipboard Transformer

A lightweight Chrome extension that instantly transforms clipboard data between different formats: CSV (comma-separated), CSV (pipe-separated), TSV (tab-separated for Google Sheets), JSON, and JOOQ-style value lists.

## Features

- 🔍 **Auto-detect format** - Automatically identifies CSV (comma), CSV (pipe), TSV, JSON, or JOOQ format in your clipboard
- 🔄 **One-click conversion** - Transform between any supported formats with a single click
- 📋 **Direct clipboard integration** - Read from and write to clipboard automatically
- ⚡ **Fast and lightweight** - No external dependencies, runs entirely in your browser
- 🎨 **Clean, simple UI** - Minimal clicks to get your data transformed

## Common Use Cases

### 📊 Google Sheets/Excel → Code
Select and copy cells from Google Sheets or Excel, then transform to CSV or JSON to paste directly into your code editor (VS Code, Sublime, etc.). Perfect for:
- Creating test data fixtures
- Generating mock API responses
- Building database seed files
- Sharing data with non-spreadsheet users

**Example workflow:**
1. Select cells in Google Sheets (they copy as TSV)
2. Click extension → "To JSON"
3. Paste into VS Code as a ready-to-use JSON array

### 💾 CSV/JSON → Google Sheets
Copy CSV data from a file or JSON from an API response, convert to TSV, and paste directly into Google Sheets with proper cell separation.

**Example workflow:**
1. Copy CSV data from a text file or terminal output
2. Click extension → "To TSV (Sheets)"
3. Paste into Google Sheets - data automatically fills the correct cells

### 🔄 Quick Format Switching
- Convert comma-separated CSV to pipe-separated for different database imports
- Transform JSON API responses to spreadsheet-friendly format
- Generate SQL INSERT value lists from spreadsheet data

## Installation

### Option 1: Chrome Web Store (Recommended)
*Coming soon - pending approval*

### Option 2: Manual Installation from GitHub

1. **Download the extension:**
- Download the [latest release](https://github.com/lex3001/chrome_csv_helper/archive/refs/heads/main.zip)
- Or clone the repository:
```bash
git clone https://github.com/lex3001/chrome_csv_helper.git
```

2. **Load in Chrome:**
- Open Chrome and go to `chrome://extensions`
- Enable **Developer mode** (toggle in top-right corner)
- Click **Load unpacked**
- Select the `chrome_csv_helper` folder

3. **Pin the extension** (optional):
- Click the puzzle icon in Chrome toolbar
- Find "Clipboard Transformer" and click the pin icon

## Usage

1. **Copy data** to your clipboard (from Google Sheets, a CSV file, JSON, etc.)
2. **Click the extension icon** in your Chrome toolbar
3. The extension will automatically detect the format
4. **Click a conversion button** to transform to your desired format:
- `To CSV (comma)` - Convert to comma-separated values
- `To CSV (pipe)` - Convert to pipe-separated values
- `To TSV (Sheets)` - Convert to tab-separated (paste directly into Google Sheets)
- `To JSON` - Convert to JSON format
- `To JOOQ-ish` - Convert to JOOQ-style value list

5. The converted data is **automatically copied** to your clipboard and displayed in the popup

### Fallback Options

If automatic clipboard detection doesn't work (due to browser permissions):
- Click the **"Detect clipboard"** button to manually trigger detection
- Or paste your data into the text area and click **"Use pasted data"**

## Supported Formats

### Input Formats (Auto-detected)
- **CSV (comma)** - Standard comma-separated values
- **CSV (pipe)** - Pipe-separated values (`|`)
- **TSV** - Tab-separated values (from Google Sheets, Excel)
- **JSON** - Arrays of objects or arrays of arrays
- **JOOQ** - Parenthesized value lists like `(1, 'value', true), (2, 'value2', false)`

### Output Formats (One-click conversion)
All of the above formats are available as conversion targets.

## Technical Notes

### CSV Parsing
- Handles quoted fields with commas, newlines, and escaped quotes
- Automatically detects separator type (comma vs pipe vs tab)
- Preserves data integrity during conversion

### JSON Conversion
- Array of objects → Table with keys as headers
- Array of arrays → Direct table representation
- Table → Array of objects (first row becomes keys)

### JOOQ Format
- Heuristic parser for SQL-style value lists
- Supports strings (quoted), numbers, booleans, and NULL
- Useful for generating INSERT statements

### Clipboard Permissions
- Uses `navigator.clipboard` API (requires user gesture in some browsers)
- Falls back to manual paste if automatic clipboard access is blocked
- Stores permission state locally to minimize future prompts

## Privacy

- **No data is transmitted** - All processing happens locally in your browser
- **No tracking or analytics** - Your data stays private
- **No external dependencies** - No third-party libraries or API calls

## Known Limitations

- **JOOQ parsing** is heuristic and may not handle all SQL syntax variations
- **Large datasets** (>10,000 rows) may be slow in the popup UI
- **Clipboard access** requires user permission/gesture in some browsers

## Support

Found a bug or have a feature request? [Open an issue](https://github.com/lex3001/chrome_csv_helper/issues) on GitHub.