SeatSolver

Build a seating chart from your spreadsheet

Drop the .xlsx, drop the .csv, or paste the cells straight out of Google Sheets. Your columns are read as they are: 14 kinds of column across 120 header spellings, no template to fill in, no fields to remap, no upload.

Your guest list

Drop an .xlsx or .csv here, paste from Google Sheets, or . You can also .

      Tables

      Rules

          Paste or drop your guest list, then choose how many tables the room has. The chart appears here.

          Ask an assistant for a tool that imports a spreadsheet and it tells you to use Excel

          That is the gap this page exists to fill. Seating tools tend to want their own guest list, typed into their own form, behind their own account. The list you have is a spreadsheet with a title row, some merged cells, a column called "Do not seat with" and a totals row at the bottom, and no seating tool will take it.

          This one does. Everything below is a real thing guest lists do, and each of them is handled rather than rejected.

          The columns it recognises

          Name, or first name and last name as separate columns. Party, group, household or family. Side, department, class, team or company. Meal, entree, dietary or allergies. Table, if the file already has assignments. Accessible, wheelchair or mobility. VIP or head table. Notes. RSVP or attending. Party size, count or number of guests. And the two that matter most: "do not seat with" in all its spellings, and "sit with".

          Column names do not have to match exactly. "Guest full name", "Household #", "Meal choice (final)" and "Do not seat with (2)" all land in the right place. After the import the tool shows you exactly which column it read as what, and you can correct any of it before solving. That readout is the point: a guess you cannot check is worse than no guess.

          The mess it expects

          A title row above the header, because someone wrote "Wedding guest list - final" in A1. Blank rows used as spacing. A totals row at the bottom, which is skipped and reported. Numbered rows like "1. John Smith". Names written "Smith, John", which are turned around - unless the part after the comma is a suffix like Jr. Names written "John & Jane Smith", which become two guests who stay at the same table. "Tom Baker and guest" and "Maria Garcia +1", which become two guests each. "The Patel family (4)", which becomes four.

          Declined RSVPs are left out. Duplicate names are kept and flagged rather than silently merged, because two guests really can share a name. A name typed into a "do not seat with" cell that does not match anyone on the list is reported by row number instead of being quietly dropped - that single behaviour is the difference between a chart you can trust and one you cannot.

          Excel files without an upload

          An .xlsx file is a zip of XML. It is unzipped and read by your browser, using decompression that is already built into it. There is no server step, so there is no copy of your guest list anywhere, and the whole reader is a few kilobytes rather than the several hundred a spreadsheet library would cost.

          If the workbook has several sheets, the one with the most data in it is used and the others are offered as a switch. The old .xls format is not supported; Excel will save it as .xlsx or .csv in two clicks.

          Pasting from Google Sheets

          Select the range in Google Sheets, copy, and paste into the box. The clipboard carries tab-separated text, which is read the same way a file is, including the header row. Same for Numbers, Airtable, Notion tables and anything else that copies a grid.

          Questions

          Which file types can I import?
          .xlsx, .csv, .tsv and plain text, plus pasted cells from Google Sheets, Excel or any other grid. The old .xls format is not supported.
          Do my columns have to be in a particular order?
          No. Columns are matched by their headers, in any order, and any column that is not recognised is ignored rather than misread.
          Is the file uploaded?
          No. The spreadsheet is read inside your browser, including the unzipping of an .xlsx. Nothing is sent anywhere, so there is no copy of your guest list on a server.
          What if it reads a column wrong?
          It shows you every column mapping it made, and you can change any of them before solving. Rows it skipped are listed by row number with the reason.
          Can it keep the table assignments already in my file?
          Yes. If your file has a table column, those assignments are read in and can be kept as a starting point, so re-solving only moves the people who have to move.

          Last checked against the tool on.