{"id":728,"date":"2026-09-24T13:01:35","date_gmt":"2026-09-24T13:01:35","guid":{"rendered":"https:\/\/abrarqasim.com\/blog\/how-to-export-a-trello-board-excel-csv-pdf-sheets\/"},"modified":"2026-09-25T14:07:25","modified_gmt":"2026-09-25T14:07:25","slug":"how-to-export-a-trello-board-excel-csv-pdf-sheets","status":"publish","type":"post","link":"https:\/\/abrarqasim.com\/blog\/how-to-export-a-trello-board-excel-csv-pdf-sheets\/","title":{"rendered":"How to Export a Trello Board to Excel, CSV, PDF or Sheets"},"content":{"rendered":"<p>Someone asked me a few weeks ago whether they could get their Trello board into a spreadsheet with the card comments attached. I said yes, because I maintain a Trello export Power-Up and I assumed I had built that years ago. Then I went and checked. I hadn&rsquo;t. The Power-Up SDK that board add-ons run against does not hand you comments at all, so the answer was a week of work against Trello&rsquo;s REST API: a token flow, a rate limiter, twenty pages of card actions, and a stack of edge cases I did not want to meet.<\/p>\n<p>So here is the post I wanted when I started. What Trello exports by itself, what it quietly drops, and what your options are when the built-in download is not enough. The first two thirds apply no matter what tool you end up using. I talk about my own Power-Up at the end, because I built it to fill these exact gaps, and you can judge whether that is fair.<\/p>\n<h2 id=\"what-trello-exports-on-its-own\">What Trello exports on its own<\/h2>\n<p>Open any board, hit the board menu, and pick &ldquo;Print, Export, and Share&rdquo;. You get two formats.<\/p>\n<p>JSON is available to every board member on every plan, including free. It is the complete record of the board: cards, lists, labels, members, checklists, custom fields, and the board&rsquo;s most recent actions. Comments live inside those actions. <a href=\"https:\/\/support.atlassian.com\/trello\/docs\/exporting-data-from-trello\/\" target=\"_blank\" rel=\"noopener\">Atlassian&rsquo;s export documentation<\/a> puts the ceiling at the 1,000 most recent actions per board. On an active board you will hit that number, and whatever falls off the end is simply not in your file. The docs also say the JSON cannot be re-imported to rebuild a board, which surprises people who assume export means backup.<\/p>\n<p>CSV needs a Premium workspace. It is the format most people actually want, because it opens in Excel or Google Sheets with nobody writing code. Two limits come straight from Atlassian&rsquo;s own page: CSV export only includes cards that are not archived, and comments are excluded from spreadsheet exports.<\/p>\n<p>There is also a workspace-level export, admin only, Premium only, which can bundle raw attachment files into a ZIP instead of just linking to them. If you are leaving Trello or want a cold archive of everything, that is the one to reach for.<\/p>\n<h2 id=\"what-the-built-in-csv-leaves-out\">What the built-in CSV leaves out<\/h2>\n<p>I keep a list of the things people ask for that the native CSV does not carry. It has stayed stable for about two years.<\/p>\n<p>Archived cards. Teams archive instead of delete, so on a year-old board half the history is invisible to the export. Every &ldquo;why does my report show 40 cards when we shipped 300&rdquo; question traces back to this.<\/p>\n<p>Comments. The decision log of most boards lives in comments, not descriptions. They are in the JSON and not in the CSV, which is the single most annoying split in the whole product.<\/p>\n<p>Movement history. When did this card enter the list it is in now? How many days has it been sitting there? Who moved it to Done? None of that is a card field. It has to be derived from the board&rsquo;s action feed, which you reach through the <a href=\"https:\/\/developer.atlassian.com\/cloud\/trello\/rest\/\" target=\"_blank\" rel=\"noopener\">REST API<\/a>. No menu will give it to you.<\/p>\n<p>Checklist items as rows. A CSV gives you one row per card. If you run a board where each card holds a twelve-item checklist, and you want one row per item, you are writing a script.<\/p>\n<p>Formatting. Not a data problem, but a real one. A raw CSV has no column widths, no frozen header, no label colours, no filters, and no totals. Anyone building a weekly status report ends up doing the same twenty minutes of spreadsheet work every Friday.<\/p>\n<h2 id=\"exporting-a-trello-board-to-excel\">Exporting a Trello board to Excel<\/h2>\n<p>Four routes, roughly in order of effort.<\/p>\n<p>Copy and paste works for one list on one board on one afternoon. It stops working the moment somebody wants it again next week.<\/p>\n<p>The JSON route is the free one. Download the JSON, then parse it with Python, Power Query, or whatever you already know. This is genuinely fine for a technical user with a one-off question, and it is the only free path to comments. The cost is that you are now maintaining a script, and Trello&rsquo;s JSON shape is nested enough that flattening it well takes longer than you think.<\/p>\n<p>Browser extensions read the board through the page you are looking at. A few have been around for years and do a decent job. The tradeoff is that an extension sees whatever your browser session can see, updates on its own schedule, and cannot run when your laptop is shut.<\/p>\n<p>Power-Ups run inside Trello itself. You enable one from the board&rsquo;s Power-Ups menu, it appears as a button on the board, and it uses Trello&rsquo;s own APIs with the permissions you grant. This is the route I picked when I built mine, mostly because nothing has to be installed on the person&rsquo;s machine and the free tier of Trello supports Power-Ups.<\/p>\n<h2 id=\"where-my-power-up-fits\">Where my Power-Up fits<\/h2>\n<p>I run <a href=\"https:\/\/exportly.abrarqasim.com\">Exportly<\/a>, a Trello Power-Up for exporting boards. It is the successor to an earlier export Power-Up of mine that has been sitting on a thousand-odd boards for a while, and the rewrite exists because of the gap list above. You can install it from <a href=\"https:\/\/trello.com\/power-ups\/6aaef31b1b790e7087a6a484\" target=\"_blank\" rel=\"noopener\">Trello&rsquo;s Power-Up directory<\/a>.<\/p>\n<p>The short version of what it does. Excel workbooks that are already formatted, with a frozen header, coloured labels, dates that Excel treats as dates, and an optional Summary sheet with live COUNTIF formulas that keep working after you edit the file. CSV with a delimiter and date format that match your locale, which matters more than it sounds if you are in Europe and your spreadsheet keeps reading dates as text. PDF for the people who want to print a board or email a client something that is not editable. Google Sheets, pushed straight into your Drive.<\/p>\n<p>On the data side it covers what the native CSV does not: archived lists and cards, comment text, the date a card entered its current list, days in list, who moved it to Done, and a checklist-item row mode where every item becomes its own row. Filters for list, label, member, and due window run before the export, so a &ldquo;what is overdue this sprint&rdquo; report becomes a saved preset you click once. You can export up to ten boards at once into one workbook.<\/p>\n<p>The comment and history columns need you to connect Trello once, because they come from the REST API rather than the Power-Up SDK. That connection is the part that took the week I mentioned at the top, and it is also the part I would have skipped if I had known how fiddly Trello&rsquo;s authorisation window is inside an iframe.<\/p>\n<h2 id=\"scheduling-the-export-so-you-stop-doing-it-by-hand\">Scheduling the export so you stop doing it by hand<\/h2>\n<p>This is the feature I use myself and the reason the product has a server at all.<\/p>\n<p>You pick a board, a format, a time, and a timezone, and the export arrives by email on a schedule. Monday 08:00 in Asia\/Dubai, every weekday, month-end, whatever the cron expression allows. Files above eight megabytes come as a download link instead of an attachment, and links expire after seven days.<\/p>\n<p>The interesting part of building it was storage. A scheduled export needs a Trello token sitting on a server, which is a thing I did not want to be careless about, so tokens are sealed with AES-256-GCM and only ever decrypted inside the worker process that runs the exports. The API process cannot read them. It runs on a small Hetzner box, the same one I wrote about when I compared <a href=\"https:\/\/abrarqasim.com\/blog\/hetzner-vs-digitalocean-what-this-blog-actually-runs-on\">Hetzner and DigitalOcean for this blog<\/a>, which has turned out to be more than enough machine for the job.<\/p>\n<h2 id=\"backing-up-a-board-with-its-attachments\">Backing up a board with its attachments<\/h2>\n<p>Trello&rsquo;s workspace export can include raw attachments, but it is Premium and admin only, and it gives you everything at once rather than the one board you care about.<\/p>\n<p>Exportly has a board backup that produces a ZIP: the export file itself, every uploaded attachment sorted into folders by list and card, and a manifest CSV that records which files were included, which were skipped, and why. Link-only attachments cannot be fetched, files over fifty megabytes are skipped by design, and the manifest says so, so nobody has to guess. I added the manifest after my own first test run quietly dropped four files and I spent an hour working out which ones.<\/p>\n<h2 id=\"what-this-costs-and-what-i-would-pick\">What this costs and what I would pick<\/h2>\n<p>Free tier is three exports a month, which is enough to decide whether the thing is useful. Then it is a fourteen day trial, and after that 6.99 US dollars a month or 49 a year. Refunds are fourteen days after any charge, no argument.<\/p>\n<p>If you are on Trello Premium, you export once a quarter, and you do not care about comments or archived cards, the built-in CSV is fine. Use it and skip the rest of this.<\/p>\n<p>If you are on the free plan, or you need comments, archived cards, formatted Excel, PDF, or a report that shows up in your inbox every Monday without you doing anything, a Power-Up is the shortest path. You can <a href=\"https:\/\/trello.com\/power-ups\/6aaef31b1b790e7087a6a484\" target=\"_blank\" rel=\"noopener\">add Exportly to a board<\/a>, run a free export, and see whether the workbook is the one you wanted before you pay for anything.<\/p>\n<p>Here is the one thing to do this week, whichever way you go. Open your busiest board, run the native JSON export, and search the file for a comment you remember writing three months ago. If it is missing, you have just found the 1,000-action ceiling, and you now know why the spreadsheet you were about to build would have been wrong. I write about this kind of small, expensive detail fairly often over on <a href=\"https:\/\/abrarqasim.com\">my site<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Trello&#8217;s built-in CSV skips comments and archived cards. Here is what the native export really gives you, and how to get a board into Excel, PDF or Google Sheets.<\/p>\n","protected":false},"author":2,"featured_media":727,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"","rank_math_description":"Trello's built-in CSV skips comments and archived cards. Here is what the native export really gives you, and how to get a board into Excel, PDF or Google Sheets.","rank_math_focus_keyword":"export trello board","rank_math_canonical_url":"","rank_math_robots":"","footnotes":""},"categories":[791,375],"tags":[818,817,816,819,257,815],"class_list":["post-728","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automation","category-tooling","tag-csv","tag-excel","tag-export","tag-power-ups","tag-productivity","tag-trello"],"_links":{"self":[{"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/posts\/728","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/comments?post=728"}],"version-history":[{"count":1,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/posts\/728\/revisions"}],"predecessor-version":[{"id":733,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/posts\/728\/revisions\/733"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/media\/727"}],"wp:attachment":[{"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/media?parent=728"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/categories?post=728"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abrarqasim.com\/blog\/wp-json\/wp\/v2\/tags?post=728"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}