I work on OnePassApps, the team behind app.onepassapps.com. This is our own Label & Card Maker, and every quoted line below was read back off the live panel on 11 November 2026, in one signed-out browser session.

The CSV side of that app has a contract you only meet when you break it. A rectangular CSV turns into labels quietly. The refusal is explicit, and it costs you the whole sheet.

Try it yourself: the Label & Card Maker, and the rest of the apps are listed in the app guides.

The hint tells you the rules

Switch the content stage to CSV rows and the panel says:

Include a header row. Each row becomes a label; non-empty columns appear on separate lines. Quote values containing commas.

The import control takes a CSV up to 1 MiB, and the panel says "Up to 1 MiB. Importing replaces the CSV text only." Above it: "Drop a CSV, or browse".

The header row is consumed, never printed. A one-column CSV with a header of "Name" and two data rows produced two entries and two labels, "Alex Smith" and "Bo Chen" - the header did not become a label.

What a ragged row does

Here is the part the hint does not tell you. Take a header of two columns and a first data row with three:

Name,City Alex Smith,Bristol,Extra Bo Chen,Leeds 

The panel refuses, and the sentence names the row and both counts:

Data row 1 has 3 columns; expected 2.

Shorten a row instead and the sentence flips its numbers. With a three-column header and a two-column second data row, it reads "Data row 2 has 2 columns; expected 3." The number is the data row, counting after the header - the first data row is row 1, so the second one is row 2. The first row that is wrong is the row it names, even when the rows before it are fine.

One bad row empties every label

Here is the part worth knowing. The refusal is not per row. The well-formed rows are dropped with it.

After either ragged CSV the preview read:

0 labels · 3 × 7 · 1 sheet Label 1 of 21 · empty 

The sheet count went to zero and the label readout went to "empty" - not just the bad row, all of them. One row with the wrong number of columns and the sheet you were building is empty until you fix the CSV.

A quoted comma is not a third column

The same shape without the quotes refuses. With them it does not:

Name,City Alex Smith,"Bristol, UK" Bo Chen,Leeds 

That CSV parsed with no complaint: the counter read "2 entries", the preview printed "2 labels · 3 × 7 · 1 sheet" and "Label 1 of 21 · Alex Smith". Same two rows, same four commas, one pair of quote marks - and the cell stays one cell.

Empty cells are skipped, not printed

An empty value does not become an empty line. A CSV with the header "Name,City" and the rows "Alex," and "Bo,Leeds" produced two labels: the first printed just "Alex", the second printed "Bo" and "Leeds" on separate lines. The hint says "non-empty columns appear on separate lines" and that is literally what happens - a blank cell is not a line.

The sheet geometry does not move

Whatever the CSV does, the sheet under it stays the same. The preset line reads "3 × 7 on A4 · 63.5 × 38.1 mm" and the preview keeps printing the same "3 × 7 · 1 sheet" in every case above - empty, one column, three columns, ragged. What moves is the count: the sheet readout sits at "0 labels" after a refusal and shows the real number once the CSV parses.

Nothing left the tab

With a fetch and XHR hook installed before I typed anything, the only request the panel made was a GET to api.onepassapps.com, and no request carried a body. The hosts on the wire for the whole page load were app.onepassapps.com, api.onepassapps.com, clerk.onepassapps.com and Cloudflare's own analytics host. The panel says "Nothing leaves this tab." and the log agrees.

Limits

One build, one browser, one signed-out session, 11 November 2026. The CSV was typed into the text area; I did not use the file picker, so the 1 MiB cap above is the panel's own wording and not something I measured against a file of that size. I tested headers of one, two and three columns, rows one column short and one column long, a quoted value containing a comma, an empty cell and a single-column CSV. I did not test a value that itself contains a quote mark, and I did not print a sheet.

My earlier post on this app covers the sheet presets and the sheet count: Print Label Sheets from CSV in the Browser. This one is about what the CSV side does when the rows do not line up.