Why does your exported Gantt chart show #VALUE! in column E? Why do task start dates shift by 4 years? Why does Excel open with blank rows between every task?
Quick Answer
Yes, you can export Project to Excel — but Microsoft Project doesn’t have a native 'Export to Excel' button. You’re actually copying structured data or using intermediate formats (XML, CSV, or MPP-to-Excel converters), and each method handles dates, dependencies, and outline levels differently. The safest path is Copy → Paste Special → Unicode Text into Excel — not Paste.
All the Methods
| Method | Steps | Best For | Limitations |
|---|---|---|---|
| Copy & Paste Special (Unicode Text) | Select tasks → Ctrl+C → In Excel, right-click → Paste Special → Unicode Text | Preserving outline levels, % complete, and custom fields | No predecessors or resource assignments |
| Save As Excel Workbook (.xlsx) | File → Save As → Browse → Change 'Save as type' to Excel Workbook → Save | One-time snapshot of current view (Gantt, Task Sheet) | Loses formatting, hyperlinks, and baseline data; requires Project 2016+ |
| Export to XML + Import in Excel | File → Export → Other Formats → XML → Save → In Excel: Data → Get Data → From File → From XML | Full fidelity: predecessors, resources, cost, baseline | XML schema varies by Project version; Excel may auto-split columns incorrectly |
| VBA Macro (Custom) | Run macro that loops through Tasks collection and writes values to Excel via late binding | Teams automating weekly exports with filters or conditional logic | Requires admin rights; fails if Excel isn’t installed on same machine |
| Third-party Add-in (e.g., Project Excel Exporter) | Install add-in → Ribbon tab appears → Click 'Export All Fields' → Choose Excel version | Non-technical PMs needing full field mapping and date integrity | $99/year; some add-ins break on Project 2021 cloud versions |
Method 1 Deep Dive
Do this first — it’s the fastest and most reliable for daily use. Open your Project file. Select rows A1:C12 (your top-level tasks and first two subtasks). Press Ctrl+C. Switch to Excel. Right-click cell A1. Don’t click Paste. Instead, press Alt+E+S+U — that’s the keyboard shortcut for Paste Special → Unicode Text. Hit Enter.
This avoids Excel auto-converting '2024-03-15' into a serial number like 45366. It also preserves indentation — which Excel reads as tab characters — so Outline Level 1 appears at A1, Level 2 at B2, etc. Here’s what you’ll get:
| Task Name | Start | Finish | % Complete |
|---|---|---|---|
| Phase 1: Discovery | 2024-03-15 | 2024-04-12 | 100% |
| Stakeholder interviews | 2024-03-15 | 2024-03-22 | 100% |
| Phase 2: Design | 2024-04-15 | 2024-05-30 | 65% |
| Wireframe review | 2024-04-15 | 2024-04-26 | 80% |
| Acme Corp Integration | 2024-05-01 | 2024-06-14 | 0% |
Notice the indented rows. Those spaces aren’t manual — they’re actual tab characters. Excel treats them as separate columns *unless* you paste as Unicode Text. Try pasting normally and you’ll get one giant string in A1. That’s why Alt+E+S+U exists.
Method 2 Deep Dive
When you need predecessors, resource names, or baseline dates — go XML. In Project, go to File → Export → Other Formats. Choose 'XML'. Save as 'Q2_QA_Project.xml'. Now open Excel. Go to Data tab → Get Data → From File → From XML. Navigate to your file. Click Import.
Excel opens the XML Import Wizard. Click 'OK' on the first screen. On the second, check 'Import data into a new worksheet'. Then click 'OK'. Excel creates a table starting at A1. Column headers will include 'ID', 'Name', 'Start', 'Finish', 'Predecessors', 'Resource Names', 'BaselineStart', 'Cost'. Predecessor values look like '2FS+3d' — meaning 'finish-to-start with 3-day lag after Task 2'.
Here’s the counterintuitive tip: If your Project file uses custom fields like 'Client Priority' or 'Risk Score', they appear in XML *only if* they’re visible in the current view before export. So before exporting XML, switch to Task Sheet view, right-click column header, choose 'Insert Column', and add 'Risk Score'. Then export. Otherwise, that field vanishes.
Sample row from imported XML (A1:H1):
| ID | Name | Start | Finish | Predecessors | Resource Names | BaselineStart | Risk Score |
|---|---|---|---|---|---|---|---|
| 7 | API Gateway Setup | 2024-05-06 | 2024-05-17 | 6FS | Sarah Chen, DevOps | 2024-05-05 | High |
| 8 | Security Audit | 2024-05-10 | 2024-05-24 | 7SS+2d | Alex Rivera, InfoSec | 2024-05-09 | Critical |
Cheat Sheet
| Action | Shortcut / Steps | Notes |
|---|---|---|
| Copy Project tasks for Excel | Ctrl+C in Project → Alt+E+S+U in Excel | Preserves tabs = outline levels |
| Export full dependency data | File → Export → XML → Excel Data → From XML | Add custom fields to view first |
| Save current view as .xlsx | File → Save As → Excel Workbook (.xlsx) | Only works in Project 2016 or later |
| Paste without breaking dates | Never use Ctrl+V — always use Alt+E+S+U | Ctrl+V converts dates to serial numbers |
| Verify predecessor integrity | In Excel, filter column 'Predecessors' for blanks or #N/A | Missing predecessors mean task wasn’t linked in Project |
| Fix misaligned outline levels | Select A:C → Data → Text to Columns → Delimited → Tab → Finish | Splits indented text into true columns |