1D NESTING

Guide · Excel and CSV

1D Stock Cutting Optimizer from Excel: Paste, Import, Export

Keep the cut list where it already is. Paste rows from Excel or import a CSV, TSV or job JSON, check what was read, and send the finished plan back to Excel as three CSV files.

Open the planner and pasteFree · runs in your browser

Template

The column layout to copy

Part IDLengthQtyLeft angleRight angleMaterial
UP1660490904040 T-slot
W21500164545Window profile 60
Length is the long point, tip to tip. Angles: 90 square, 45, 60 or 30 (negative leans the other way). Leave Material empty for single-material jobs.
Excel / SheetsPart ID | Length | QtyUP | 1660 | 4RL | 1040 | 6Paste or importtab · comma · semicolonheader row detectedunits from cellsNested bars3 × 6000 mmyield 95.2%stop marks per barPro CSV packpurchasing BOMsaw cut scheduleremnant ledger
From spreadsheet rows to nested bars and back to Excel. The numbers are the machine frame job used throughout this guide.
  1. Arrange the columns. Part ID, Length, Qty, Left angle, Right angle, Material. Only Length is required; a header row is optional.
  2. Copy the rows. Select the header and data rows in Excel or Google Sheets and copy them.
  3. Paste into the planner. Open Paste from Excel on the planner, paste, and choose Replace cut list or Append rows.
  4. Check the import line. The status line reports rows, parts, delimiter and units before you rely on the plan.

Headers

Header names the importer recognises

ColumnAccepted header names (any case)
Part IDpart id · part · id · label · mark · piece · piece id · part no · part number · item
Lengthlength · len · cut length · long point · long-point length · size · l · lp length
Qtyqty · quantity · pcs · pieces · count · qnty · no of pieces · number
Left angleleft angle · left · angle left · left miter · left end · end 1 · angle 1 · a1
Right angleright angle · right · angle right · right miter · right end · end 2 · angle 2 · a2
Materialmaterial · profile · stock · section · mat · alloy
Namename · description · desc · note · notes
Read from the importer's own alias list. Columns with other names are ignored.

Header matching ignores case, extra spaces, underscores and anything in brackets, so Cut Length, cut_length and CUT LENGTH (mm) are the same column. Without a header row, columns are read in template order: ID, length, quantity, left angle, right angle, material. A list with no length column at all is refused, and your current cut list stays as it was.

Detection

Delimiters, header rows and units

Delimiter
Any tab in the first 8 lines means tab-separated (what Excel copies). Otherwise semicolon, if it appears at least as often as comma (European CSV), else comma. Cells in double quotes may contain the delimiter.
Header row
The first row is a header when any cell matches a header name, or when none of its cells reads as a length.
Units
A unit in the header or the cell wins over the page unit: Length (mm), 1660 mm, 47 3/8", 20 ft. Bare numbers use the unit selected on the planner.
Quantities
Whole numbers only. A blank quantity counts as 1; a row with an unreadable length is skipped and named in the status line.

A mixed example: Mark;Cut length;Pcs with rows A;1660 mm;4 and B;47 3/8";2 is read as 2 rows (6 parts), semicolon-separated, header row found; the second length becomes 1203.3 mm in a metric job.

Files

CSV, TSV and job JSON import rules

Drop a file on the import card or click it to browse. Accepted: .csv, .tsv, .txt and .json up to 5 MB (5,242,880 bytes). The file is read by your browser and never uploaded. Save an .xlsx workbook as CSV UTF-8 first; this importer does not open .xlsx, PDF tables or scanned drawings.

You dropThe planner says
A photo or PDF (photo.png)“photo.png” is not a supported file. Use .csv, .tsv, .txt or .json (save Excel sheets as CSV).
A 6 MB export (big.csv)“big.csv” is 5.7 MB; the limit is 5 MB (5,242,880 bytes).
An empty file (empty.csv)“empty.csv” is empty.
Rows without a length columnNo Length column found (headers seen: Part, Qty). Add a column named Length (or Len, Cut length) with the long-point length of each part. Nothing was changed.
A PDF renamed to .csvThis file is not a text cut list (it contains binary data). Save the sheet as CSV (comma or tab separated) and try again.
A job JSON from a future versionThis job JSON is not valid: schemaVersion must be 1.
Messages produced by the import code. In every case nothing is changed.

A job JSON holds the whole job: stock, offcut inventory, settings and parts. It is the same shape the Pro export routes accept, so a saved job always re-opens exactly. Limits: 50 stock rows, 200 offcut rows, 500 part rows and 5,000 pieces per job.

{
  "schemaVersion": 1,
  "jobName": "Machine frame",
  "units": "mm",
  "settings": {
    "kerf": 3,
    "trimLeft": 10,
    "trimRight": 10,
    "remnantMin": 300,
    "profileWidth": 40,
    "miterFlip": false,
    "objective": "min-cost",
    "useOffcutsFirst": false
  },
  "stocks": [
    {
      "material": "",
      "length": 6000,
      "qty": null,
      "price": 96
    }
  ],
  "offcuts": [],
  "parts": [
    {
      "label": "UP",
      "length": 1660,
      "qty": 4,
      "leftAngle": 90,
      "rightAngle": 90,
      "material": ""
    },
    {
      "label": "RL",
      "length": 1040,
      "qty": 6,
      "leftAngle": 90,
      "rightAngle": 90,
      "material": ""
    }
  ]
}

Back to Excel

What the Pro CSV pack returns

FileColumnsContents
01_purchasing_bom.csvmaterial, stock_length, unit, qty, unit_price, line_total, currencyOne line per material and stock length, with a TOTAL row
02_saw_cut_schedule.csvbar_no, stock_length, cut_seq, piece_id, label, cut_length, left_angle, right_angle, flipped, stop_position, unit, bar_yield_pctEvery cut in saw order with its stop position
03_reusable_remnants.csvremnant_id, material, bar_no, length, unit, status, barcodeOne line per bar end: reusable with a barcode, or scrap
Comma-separated, UTF-8 with a byte-order mark so Excel opens accented material names correctly.

Google Sheets and Apple Numbers copy cells as tab-separated text exactly like Excel, so the same paste works. LibreOffice may ask for a separator when saving CSV; comma or semicolon are both fine. Keep one part per row, and never merge cells in the list you paste: merged cells copy as blanks, and a row whose length cell is blank is skipped with a message.

The free TXT summary lists the totals and the first five bars; the CSV pack lists every bar and every cut. Open 02_saw_cut_schedule.csv and filter by bar_no to print one bar per saw station, or sort by piece_id to check that every part of the original list was planned.

Ready? Paste your list into the 1D nesting optimizer, or start from a preset on the aluminum, feet-and-inch or rebar pages.