LOCAL-FIRST CSV EDITOR

Edit the values. Leave the file alone.

Browser-only, format-preserving CSV editor with Shift_JIS support

Refrain Sheet is a format-preserving CSV and spreadsheet editor that runs entirely in your browser. You edit field values; everything else — encoding, quoting, line endings, BOMs — stays exactly as it was.

For teams reworking CSVs from core systems, accounting, order management or e-commerce — without breaking them.

Open and save with no edits, and the output is byte-for-byte identical.

Fully offline No server, no account Shift_JIS / CP932 ready MIT licensed
Refrain Sheet showing a Shift_JIS CSV file with only the edited cell highlighted in amber
A Shift_JIS ledger opened in the app. Only the edited cell is tinted, and the status bar always reports encoding, delimiter and line endings.

THE PROBLEM

Most editors damage a CSV just by opening it.

Open a CSV in a normal spreadsheet app and the encoding shifts, quotes appear and disappear, line endings get unified, leading zeros and dates turn into something else. A one-cell change becomes a whole-file diff. Refrain Sheet does the opposite.

What a normal save never does

  • unify line-ending styles or delimiters
  • alter the header layout
  • add or remove whitespace
  • add or remove quotes unnecessarily
  • add or remove BOMs
  • repair malformed CSV
  • replace undecodable bytes in unmodified fields

An edit touches one field's byte range

Change a cell and only that field is reserialized. Every other byte is left alone. A quoted field stays quoted, and an unquoted one gains quotes only when the new value truly needs them.

sales.csv — Shift_JIS / CRLF ◆ minimal diff
B-2002,抹茶 セレモニアル,12,4800,在庫僅少
+B-2002,抹茶 セレモニアル,12,4800,残り12点・要発注
CRLF kept · CP932 kept · quotes kept · BOM kept
Only the edited field's byte range is rewritten — the rest is identical

USE CASES

Built for moments like these.

Made for the CSV problems that keep coming back in real operations.

Patch one field in a core-system export

Rewrite just the product name, note or status column — everything else stays untouched.

Return a partner's exact CSV format

Keep their line endings and quoting exactly as specified.

Protect leading zeros, dates and long IDs

Values another tool would silently reinterpret stay exactly as they're written.

Inspect a malformed CSV before touching it

See the exact rows and columns at fault instead of getting a silent auto-repair.

Keep sensitive data off the network

Customer and order data are processed in the browser and never uploaded.

0 bytes
changed on an unedited save — the original bytes are written back
1 field
re-serialized when you edit a cell — every other byte is left alone
0 requests
at runtime. No CDN, no analytics, no telemetry

FEATURES

Built for the messy CSVs people actually get.

Encoding detection, honest diagnostics for malformed files, IME-safe editing — the parts that usually go wrong, handled deliberately.

Encodings and save options

UTF-8 (with or without BOM), Shift_JIS / CP932 and EUC-JP are supported, detected automatically, and reinterpretable at any time via Reopen with Encoding — which never alters the original bytes. On save you choose encoding, BOM and line endings independently.

  • Characters the target encoding can't represent cancel the save by default, with a per-cell report
  • Line-ending conversion rewrites terminators only — a missing final newline is never added
  • The status bar always shows encoding, delimiter, line endings and file size
The Save with Options dialog, offering character encoding, BOM and line-ending choices
Save with Options, including an explicit CSV-injection warning.

Malformed CSV opens — unrepaired

Unclosed quotes, invalid text after a closing quote, inconsistent field counts — every problem is listed with its row, column and a plain explanation. Nothing is normalized. Choose Open Anyway and malformed regions are preserved byte-for-byte as long as you don't edit them.

The CSV validation dialog listing unbalanced quotes and field-count mismatches with row and column numbers
The CSV Validation Results dialog explains the damage and leaves the decision to you.

Menu-first UI, IME-safe editing

A desktop-style menu bar is the single visible set of commands, and every one of them is reachable from the keyboard. Japanese and CJK input is safe from the very first keystroke — the first Romaji character joins the composition instead of leaking as a Latin letter.

  • While composing, Enter / Esc / arrows belong to the IME, never to the cell
  • Browser-reserved keys (Ctrl+W, Ctrl+F, Ctrl+T, reload, zoom) are never intercepted
  • Alt+Enter inserts a line break; multi-line values round-trip through CSV, RSF and the clipboard
The File menu open, showing New spreadsheet, Reopen with encoding and Save with options
The File menu. Shortcuts are accelerators only — nothing depends on them.

Work with Google Drive directly

The hosted app can open and overwrite files stored in Google Drive. Access is limited to files opened or created through this feature (the drive.file scope), and the access token lives only in browser memory.

A protect mode that stops accidental edits

Opening an existing file defaults to read-only; a status bar control or File > Protect Document unlocks it. The setting is per-tab, session-only, and never saved with the file.

A standalone Markdown editor

File > Markdown Editor… opens a real-time preview editor independent of any open CSV/spreadsheet tab, and can open and save an existing .md file.

RSF SPREADSHEET

When you need a spreadsheet, there's RSF

Plain CSV can't hold formulas, structural edits or metadata without breaking the guarantee. So those live in a separate .rsf document, created only by an explicit conversion that never touches the original .csv.

FORMULAS

55 functions: SUM, XLOOKUP, SUMIFS, TEXT, FILTER, UNIQUE and more

WORKBOOKS

Multiple worksheets, cross-sheet references, absolute/relative refs, cycle detection

FILTER & SORT

Filtering and a compound sort with up to 8 keys — reorders the view only, never the data or formulas

FORMATTING

Bold, italic, underline, text/background color and borders. Never touches a cell's value or formula results, is undoable, and is saved in the .rsf file

EXPORT

Auto-fit, selection statistics, CSV and XLSX export

NO EVAL

A hand-written formula engine — no eval, no new Function, no macros

DATA VALIDATION

Data Validation: restrict a range to a list or a numeric range, refusing violating edits with a reason

CONDITIONAL FORMATTING

Conditional Formatting: auto-colors cells by comparison, duplicate values, or a two-color scale

NUMBER FORMAT

Number Format: Number, Percent, or Currency display, with decimal places and a thousands separator

SQL QUERY

SQL Query: a local, read-only SELECT query against the worksheet, with autocomplete and saved queries

COMPARE / DIFF

Compare / Diff: compares two open tabs by key column, classifying every row as added, modified, deleted or unchanged

CELL COMMENT

Cell Comment: attaches a short note to a cell, independent of its value

COMMENTS PANEL

Comments Panel: lists every comment for the current worksheet or the whole workbook, click an entry to jump to its cell

DETAILS

English UI and dark theme, built in.

Japanese and English are both first-class UI languages. The theme follows your system by default and can be pinned to light or dark. Display state never changes CSV bytes, RSF data or formula results.

Refrain Sheet with the English UI and dark theme, showing the same CSV file
English UI, dark theme. Same file, same bytes.

COMPARISON

How it differs from a normal spreadsheet app.

Refrain Sheet is not an Excel replacement. It is a tool for fixing a CSV without damaging the file it lives in.

  Excel / typical spreadsheet apps Online CSV editors Refrain Sheet
Open and save, no edits Encoding, quoting and line endings may all change Usually reserialized in full Byte-for-byte identical
Editing a single cell The whole file is rewritten The whole file is rewritten Only that field's byte range
Shift_JIS / CP932 Environment-dependent; mojibake and silent conversion are common Often unsupported Detected, reinterpretable, and selectable on save
Malformed CSV Silently repaired and normalized Frequently fails to load Diagnosed, then opened with the damage preserved
Leading zeros, dates, long numbers Type inference can rewrite them Varies by implementation Values stay as written — no inference
Where your data goes Local (server for cloud editions) Uploaded to a server Nowhere. Zero network access
Setup License and installation Sometimes an account One HTML file — works over file://

Comparisons describe typical behaviour in common setups. Refrain Sheet's own guarantees are defined by its README and test suite.

SECURITY

Designed so nothing leaves the page.

Built on the assumption that your CSV is confidential. There are no runtime network connections at all.

Zero network access

The CSP sets default-src 'none' and connect-src 'none'. No CDN, external fonts, APIs, analytics or telemetry.

Nothing is executed

Cell content is never interpreted as HTML; there is no innerHTML, eval, new Function or macro anywhere. Formulas run in a sandboxed engine.

Supply chain discipline

Three production dependencies with zero transitive dependencies, enforced lockfiles, install scripts disabled, and releases shipped with SHA-256 checksums, an SBOM and signed build provenance.

GET STARTED

Three steps.

01

Open it in a browser

Just open the hosted web app. No installation, no account, no setup.

02

Drag and drop a CSV

Drop files anywhere in the window; each one opens in its own tab.

03

Or run it offline

Download a release ZIP, extract it, and double-click index.html. It works over file://.

Questions

Where does my data go?

Nowhere. Files are read inside the browser and saved back to your own device. Runtime network access is blocked at the CSP level.

Is this an Excel replacement?

No — different purpose. Refrain Sheet fixes CSV files without damaging them; formulas and structural edits require an explicit conversion to an .rsf spreadsheet. Excel compatibility is not claimed.

How large a file can it open?

The default limit is 512 MiB (adjustable from 16 MiB to 2 GiB) and oversized files are refused before their bytes are read. Rendering is virtualized, but hundred-megabyte files can still feel slow.

Which encodings are unsupported?

UTF-16 and ISO-2022-JP are not supported in this release. Such files still open with a best-effort interpretation and a warning, and their bytes remain untouched.

Can it always overwrite the original file?

In Chromium-based browsers, yes, via the File System Access API. Firefox and Safari fall back to a download save, and the app tells you which kind of save happened.

Does cell formatting (bold, color, borders) change the CSV bytes?

No. Formatting is a purely visual, RSF-only feature — it never changes a cell's value, formula results, sort/filter behavior, or CSV export. Plain CSV documents cannot use formatting at all.

Does this introduction page itself use analytics?

Only this introduction page (refrain-sheet.com) may use Google Analytics, to measure visits. It loads only if you choose "Accept" in the consent banner at the bottom of the page, and you can change that choice anytime from "Cookie settings" in the footer. The app itself (app.refrain-sheet.com), where you edit CSVs, is served separately and continues to make no network connections at runtime.

Open one of your own CSVs.

No install. In a few seconds you can confirm that saving produces no diff at all.

No sign-up Nothing uploaded Try it first with a copy of your CSV