← Blog
How-to·26 May 2026·6 min read

Turn an Excel plan into a presentation Gantt (and copy the table back out)

Half the plans in the world live in a spreadsheet — a task list with a start, a finish and a percent. That's a legitimate plan; it just can't present itself. Here's how to import that Excel or CSV task list, map your columns in one pass, dress it as a branded Gantt with milestones and RAG, then copy the whole table straight back into Excel. A clean round-trip, no scheduling engine required.

Not every plan is a Primavera network. A huge amount of real project work is tracked in a spreadsheet: a list of tasks, a couple of date columns, a percent-complete cell that somebody updates on a Friday. It's honest, it's fast, and everyone on the team can open it. The trouble comes the moment you have to show it. A grid of dates is not a schedule anyone can read across a table — so you end up drawing rectangles by hand in a slide, or wrestling a spreadsheet's built-in "bar chart" into something that vaguely resembles a Gantt.

You shouldn't have to leave your data behind to get a picture out of it. The task list is already the plan — it just needs a presentation layer bolted on top and then handed back, unchanged, when you're done. Here's the twelve-row spreadsheet most teams actually work from, and exactly how to turn it into the page a stakeholder wants to see.

The plan as it lives today · a 12-row spreadsheet TaskStartFinish% Kick-off & brief06 Jan10 Jan100 Requirements13 Jan31 Jan100 UX wireframes27 Jan14 Feb80 Visual design10 Feb28 Feb60 Design sign-off28 Feb28 Feb0 Front-end build03 Mar04 Apr20 Back-end build03 Mar11 Apr15 Integration14 Apr25 Apr0 QA & fixes28 Apr16 May0 UAT19 May30 May0 Go-live06 Jun06 Jun0 Hypercare close20 Jun20 Jun0
Fig 1. The starting point: a twelve-row task list with Task, Start, Finish and % columns. Everything a Gantt needs is already here — it's just trapped in a grid nobody can read as a timeline.

Everything a Gantt needs is already in the grid

A Gantt bar is only ever three numbers: where it starts, where it ends, and how far along it is. Your spreadsheet already holds all three, plus a name for each row. The zero-duration rows — the sign-off, the go-live — are milestones waiting to be marked. The gap isn't data; it's rendering. So the job is simply to teach the app which of your columns means what, and let it draw.

That's the whole idea behind column-mapping. Your headers might say "Task", "Activity", "Work item" or nothing at all; your dates might be Start/Finish, Begin/End, or planned-vs-actual pairs. You map each of your columns to a role — Activity name, Start, Finish, % complete, and optionally WBS, owner or a RAG value — once, and the import is done.

Column-mapping · your headers → Gantt fields Your spreadsheet Sketchedule field Task Activity name Start Start date Finish Finish date % % complete Owner Swimlane / RAG (optional)
Fig 2. Map once. Sketchedule reads your headers and proposes the matches; you confirm or drag to fix them. Extra columns like Owner can drive a swimlane band or a RAG value, or ride along untouched.

The four-step round-trip

Take the twelve rows from Fig 1 — a straightforward delivery plan: brief, design, build, test, go-live. Here's how it becomes a branded one-pager and then goes home to Excel, start to finish, without leaving your data behind.

  1. Import the .xlsx or CSV — or just paste. Drag your spreadsheet straight onto Sketchedule, or copy the rows in Excel and paste them into the app. It parses in your browser — nothing is uploaded, your plan never leaves your machine. Don't have a file handy? Type or paste rows directly into the grid and skip the import.
  2. Map your columns. Sketchedule reads your headers and proposes the matches — Task→Activity, Start→Start, Finish→Finish, %→percent complete (Fig 2). Confirm the ones it got right, drag to fix any it didn't, and point spare columns like Owner at a swimlane or a RAG value. One pass and every row lands as a dated activity.
  3. Format bars & milestones. The grid is now a Gantt. Turn the zero-duration rows — Design sign-off, Go-live — into milestones, colour the bars by RAG, drop a data date line and fill progress to it, then add your header, footer and logo. What was a grid is now a branded page (Fig 3).
  4. Copy the table back out — or export. Select the grid and copy straight back into Excel, cells intact, or export a clean .xlsx. Prefer a picture? Export PNG, PDF or a PowerPoint slide, or send a read-only link. Your spreadsheet team keeps their spreadsheet; you keep the Gantt.
The result · built in Sketchedule ActivityStartFin% JanFebMarAprMayJun ▾ Design Requirements13 Jan31 Jan100 UX wireframes27 Jan14 Feb80 Visual design10 Feb28 Feb60 Design sign-off28 Feb28 Feb sign-off ▾ Build & release Front-end build03 Mar04 Apr20 Back-end build03 Mar11 Apr15 QA & UAT28 Apr30 May0 Go-live06 Jun06 Jun Go-live today 12 rows → 2 sections, 7 bars, 2 milestones · faded fill = progress to the data date.
Fig 3. The same twelve rows, presented: grouped into two section bands with automatic summary bars, milestones on the zero-duration rows, progress filled to a data-date line, and the grid kept alongside the chart — built in Sketchedule.
The whole point: the data never leaves the spreadsheet world. You brought a table in, you get a table back — the same cells, plus a Gantt you can actually put on a wall. Nobody has to learn a scheduling tool to keep their plan where it already lives.

Why not just do this in the spreadsheet — or in a "real" scheduler?

Two temptations, and both miss. A spreadsheet is a wonderful place to hold a plan and a poor place to present one: its stacked-bar "Gantt" hacks are fiddly, break the moment a date moves, and never quite look like a schedule — no proper milestones, no data-date line, no summary bars, no RAG that means anything. You can force it, but you'll spend an afternoon and still ship something that looks forced.

The other temptation is to reach for a heavyweight scheduler. But that's a sledgehammer for a twelve-row task list. You don't need calendars, resource-levelling and a logic network to draw a delivery plan someone typed into a grid — and you certainly don't want to migrate the team off the spreadsheet they're happy with just to make one slide. That's the category trap: desktop scheduling suites and cloud work-OS tools both want to own your plan, when all you needed was to borrow it, dress it, and give it straight back.

Sketchedule sits deliberately in the gap: a presentation front-end that speaks spreadsheet fluently. It reads your columns, draws the Gantt, and hands the table back untouched. The spreadsheet stays the source of truth; you just got a picture out of it — and a way back in.

Round-trip, not lock-in. The point of copying the table back out is that your plan owes nothing to Sketchedule. The .xlsx you export opens in any spreadsheet, cells intact. Present here when you need a picture; live in Excel the rest of the time. For heavier programmes the same door opens the other way — import P6 XER or MS Project XML instead — but for a spreadsheet plan, Excel in, Excel out is the honest workflow.

Two things worth getting right

Let it read your dates, don't fight it

Mixed date formats are the usual snag on import — 06/01, 6 Jan, 2026-01-06 all mean the same day to a human and different things to a parser. Keep one format per column and confirm the mapping preview shows the dates you expect before you commit. Get that right once and every refresh after is clean.

Mark milestones, don't leave them as thin bars

A zero-duration row will render as a hairline bar unless you tell it it's a milestone. Promote your sign-offs and go-lives to diamonds or flags — they're the dates the room actually cares about, and a milestone reads as a moment where a one-day bar reads as noise.

You haveBring it in byYou get back
An .xlsx / CSV task listDrag the file on, map columns onceA Gantt, plus copy-back to Excel or an .xlsx export
Rows in your clipboardPaste straight into the gridSame — no file needed
Odd or non-standard headersDrag each column to its role in the mapping panelEvery row placed as a dated activity
A picture for the deckFormat, then exportPNG / PDF / PowerPoint / read-only link

Key takeaways

Try it on your own spreadsheet

Open Sketchedule in a browser — free, no install, nothing uploaded. Drop in an .xlsx, or just paste your rows.

← BlogAll articles

Primavera and P6 are trademarks of Oracle Corporation; Microsoft Project is a trademark of Microsoft Corporation. Sketchedule is an independent product and is not affiliated with, endorsed by or sponsored by Oracle or Microsoft. Figures are illustrative, drawn in Sketchedule.