Bulk GS1-128 Parser & Editor
Paste a column of GS1-128 strings, Digital Link URLs, or scanner output. Get a sortable, filterable, editable table with cell-level validation, bulk operations, and round-trip export to paren, FNC1, Digital Link, CSV, and QR ZIP. Everything runs in your browser.
By The eancheck teamPublished Updated
Pasting from a PIM, Excel, or a hand scanner
The textarea at the top of this page accepts strings in brackets, FNC1 scanner output and Digital Link URLs, mixed in the same paste. Each line is detected on its own, so there is nothing to set before you paste.
From a PIM or ERP export
If your PIM or ERP can export GS1-128 strings in paren notation, for example in a label-run report, paste one string per line, click anywhere outside the textarea, and the parsed table appears below with one row per line.
From Excel
If your Excel column contains paren strings, copy the column and paste directly. Excel puts one value per line on the clipboard, which is what the parser expects. If you copy multiple columns Excel will tab-separate them, and the extra columns end up inside the last value of each row, where they show as an error. Copy one column at a time.
From a hand scanner
Point a USB hand scanner at the textarea and trigger a scan. The scanner emits the raw FNC1-delimited form, usually prefixed with]C1, and the parser strips the prefix and walks the AI chain automatically. You can scan multiple labels in sequence, one per line, without switching modes.
From a Digital Link QR code
Scan a Digital Link QR with your phone, let the URL open, then copy it from the address bar and paste it here. If a worn or crumpled code will not scan, the QR code recovery tool reads it from a photo. Or, if you already have a column of Digital Link URLs in a PIM system, paste those. To build those URLs from a list of GTINs first, use the bulk Digital Link generator. The parser recognises any URL with a /01/ path segment as a Digital Link regardless of the resolver domain.
Editing cells in the table
Every cell in the table can be edited, and there is no edit mode or save button to find first. Click any cell, type a new value, and the change is saved when you click outside the cell or press Enter.
When a cell fails validation (wrong length, wrong character set, wrong check digit, invalid date) it flips to a soft red background and the error message appears on hover. Type a valid value and the red goes away at once. The overall status dot of the row updates at the same time, so a row whose last error you fixed turns green as soon as you leave the cell.
Empty cells can be edited too. If a row does not have an AI value but the table has a column for it (because another row does), you can click the empty cell and start typing. The parser creates a new Application Identifier on that row as soon as you commit the value.
Clearing a cell (deleting all its characters before you leave it) removes the AI from that row entirely. The row still exists; the specific AI is gone. This is the reverse operation of adding a new AI: both work through the same cell input.
Bulk operations, by example
Select rows via the checkboxes and the selection toolbar appears beneath the top toolbar. Every bulk operation changes the selected rows only.
Moving expiry dates for a whole product line
You have extended the shelf life of a product line and need to reprint 120 labels with the new expiry. Paste the 120 paren strings, select all rows (top-left header checkbox), click Shift date…, pick column (17), type +30, click Shift. The expiry on every selected row advances by 30 days, re-validated on the spot. Export to paren strings and hand the file to the label printer.
Fixing a typo in a batch number across 50 labels
Someone encoded LOT2O25A (letter O) instead of LOT2025A (digit 0) on a whole run. Select the affected rows, click Find & replace…, pick column (10), enter LOT2O25A as Find and LOT2025A as Replace, hit Replace. 50 cells get corrected in one click. Export and reprint.
Adding a serial number column to an existing batch
Your existing labels carry GTIN and batch, and each unit needs its own serial number in AI (21). Paste the existing labels, select all, click Edit AI…, operation Add if missing, AI code (21), and type a seed serial. Every selected row gets a new (21) column cell. Each serial must still be made unique before reprinting: edit the cells one by one, or run Find & replace a few times. The column is already in place.
Removing a GLN column that should not be there
You pasted a batch and realise the (410) Ship To GLN column should not be on this label run. Select all rows, click Edit AI…, operation Remove, AI code (410), click Remove. Every row loses its (410) value and the column disappears from the table as soon as no row still has it.
Re-exporting to any format
Click Export in the top toolbar and pick the format that matches the system the file goes to next.
| Format | What you get | Use it for |
|---|---|---|
| CSV | One row per label: line number, detected format, status, raw input, parse error and all three canonical serialisations | Spreadsheets, PIM imports, audit trails |
| Paren .txt | One string in brackets per line, valid rows only | A label designer that accepts human-readable GS1-128 |
| FNC1 .txt | Raw strings with the ASCII 29 separator embedded | A label printer fed by a system that encodes GS1-128 directly |
| Digital Link URLs .txt | One URL per line | Encoding as a QR code or Data Matrix in a label designer |
| QR codes as PNG ZIP | One 1024 × 1024 PNG per row, named by line number, each encoding the Digital Link URL of its row | Images a phone camera can scan |
| QR codes as SVG ZIP | The same codes as SVG | Print at any size without blurring |
The two ZIP exports load jszip and qrcode on the first click. For plain internal codes rather than GS1 data, make Code 128 labels in bulk. To print the strings as GS1 DataMatrix codes instead, paste the paren export into the bulk list of the barcode generator and pick Data Matrix.
The per-row ... menu on the rightmost column of each table row gives you the same formats for a single row: copy any format to clipboard, download a single-row .txt, copy the QR as an image, download the QR PNG or SVG, or open the QR preview dialog with only that row inside.
Production checklist
Before you hand the exported file to a label printer or push the CSV into a PIM, run through this list.
Frequently asked questions
How many rows can I paste at once?
There is no fixed cap: the parser and the table run in your browser. Every cell of the table becomes an editable input, so a paste of several thousand label strings takes clearly longer to draw than a few hundred, and your device sets the limit. For a very large label run, paste one product line at a time and export each chunk as paren text before you start the next.
What happens to rows with parse errors?
They stay in the table with a red status dot and a tinted background, and the error message shows in the tooltip of the dot. A row the parser could not split into AIs cannot be edited cell by cell; delete it with the row's ... menu or the selection toolbar. AI-level errors such as a wrong check digit, an invalid date or a bad length show as an amber dot with red cells. Edit those cells and the red goes away once the value is valid.
Can I mix paren, FNC1, and Digital Link inputs in the same paste?
Yes. Every line is detected independently, so one paste can have a paren string on line 1, an FNC1 scanner output on line 2, and a Digital Link URL on line 3. The table shows the detected format in the status-summary bar above the table, and you can still bulk-edit across the whole set as if they were homogeneous.
How do I change the expiry date on many rows at once?
For one fixed date, select the rows (the checkbox at the top selects all), click Edit AI… in the selection toolbar, pick the operation Set value and AI code (17), and type the new date as YYMMDD. That replaces the expiry on every selected row, whatever was there before. To move each date by the same number of days instead, use Shift date…, pick column (17) Expiration Date, enter the day count and click Shift.
Does editing a cell affect any other row?
No. A cell edit changes that one row only. To make the same change on many rows, select them and use Edit AI… or Find & replace… from the selection toolbar. A single cell edit is saved when you click outside the input or press Enter. If the new value fails validation, the cell turns soft red and the row keeps its error status until you fix it.
Why does the table not show a column for every AI?
The table only shows columns for AIs that appear in at least one row of the data you pasted. GS1 defines well over a hundred AIs, and a column for each would bury the few you use. To add a new AI to some rows, select them and use Edit AI… with the operation Add. The column appears as soon as the first cell has a value, and you can hide or show it from the Columns menu.
Which date AIs does Shift date change?
Shift date only changes the 6-digit YYMMDD date AIs: (11), (13), (15), (16) and (17). It skips the 10-digit date and time AI (7003) and date-range AIs like (7007), because adding days to those formats would give wrong values. To change them on many rows at once, select the rows and use Edit AI… with the operation Set value and the full new value.
Can I get one spreadsheet column per AI?
Not from the CSV export. The table on this page shows one column per AI, but the CSV keeps each row whole: line number, status, the raw input and the paren, FNC1 and Digital Link forms. To get columns in a spreadsheet, split the paren column at each opening bracket, so each piece starts with its AI number, such as (17), and then the value. Check any batch or serial number that contains a bracket of its own.
Can I print GS1-128 barcodes from the edited list?
Not as bars from this page. The bulk parser exports text and QR codes, not GS1-128 symbols. Download the paren .txt for label software that takes the bracketed form, or the FNC1 .txt for software that wants the raw data, and print the labels there. To print the same data as a GS1 DataMatrix, paste the paren lines into the bulk list of the barcode generator with Data Matrix as the type.
How do I re-edit a batch of labels I exported earlier?
Keep the paren export and paste it back in. The paren .txt has one string in brackets per row, and each string holds every AI and value of that row, so pasting the file into the textarea rebuilds the whole table with your edits in place. The CSV export is for spreadsheets and PIM imports; the parser does not read it back as rows.
By The eancheck teamPublished Updated
Questions or corrections? Email the eancheck team.