Timesheets
Live demo Features Pricing Blog Releases

How to Export a Jira Timesheet to Excel: Native Export, REST API, or an App

Native Jira export gives one total per issue, not hours per person per day. What CSV, the REST API and timesheet apps each give you in Excel.

Finance asks for one Excel file by the 3rd: hours per person, per project, for the closed month. Jira has every number you need in worklogs, yet the built-in export cannot turn them into a timesheet you can hand over in Excel.

What native Jira export gives you

Build a filter in issue search and open ••• > Export. The Excel items in that submenu are "Excel CSV - visible fields" and "Excel CSV - all fields": the issue export comes as CSV that Excel opens (Atlassian Support). The same submenu also lists plain CSV, XML, an HTML report, Word and a few others, plus an item labelled "XLSX - form data". Each CSV gives one row per issue.

Jira issue search with a worklogDate JQL filter and the ••• menu open on Export, listing Excel CSV - visible fields, Excel CSV - all fields, CSV - visible fields, CSV - all fields, XLSX - form data, XML, HTML report, Word, RSS and print options
The Export submenu in Jira Cloud issue search. The two Excel items are CSV files.

Time Spent is the total logged directly on that issue, in seconds. Σ Time Spent adds its sub-tasks. Neither splits by person or by date (Atlassian knowledge base). For a longer breakdown of what native Jira worklog reports can and cannot show, see Jira worklog reports.

The all-fields CSV also adds Log Work columns, one per worklog. Each cell is a single string, comment;date;user key;seconds, where the user part is Jira's internal user key, not a name or an accountId. Every row gets as many Log Work columns as the busiest issue has worklogs: one issue with 95 worklogs gives 95 Log Work columns. The date is when the worklog was created, not the day the work was logged for (JRACLOUD-77926). On our test site, work done on February 16 shows up in the cell as 22/Feb/26. Time logged for August 29 but entered on September 2 lands in September. Getting hours per person for August out of this means splitting strings and unpivoting columns every month.

Excerpt of a Jira all-fields CSV export: Summary and Issue key columns, three Log Work columns each holding a comment, a date, an internal user key and seconds in one string, and Time Spent in seconds; the file has 26 rows and 193 columns, 95 of them titled Log Work
An excerpt of "Excel CSV - all fields": 26 issues, 193 columns, 95 of them Log Work. Time Spent is in seconds.

Exporting worklogs through the Jira REST API

The REST API gives you raw worklogs without admin rights: an API token and Browse projects are enough. One caveat: worklogs restricted to a project role or group are returned only to members of that role or group, so a script run by one person can silently miss entries.

GET /rest/api/3/issue/{issueIdOrKey}/worklog returns the entries for one issue and accepts startedAfter and startedBefore, so you can ask for August only. For recurring exports, GET /rest/api/3/worklog/updated lists ids of worklogs changed since a timestamp, 1,000 per page, and POST /rest/api/3/worklog/list fetches up to 1,000 of them per call. Deletions come from GET /rest/api/3/worklog/deleted with the same paging (REST API v3 reference, checked September 23, 2026). Both feeds skip changes from the last minute before your request, so a run right after someone logs time can miss that entry.

Pagination, time zones and mapping accountId to a display name are yours to handle. That is fine for a one-off export or a BI pipeline a developer maintains. For a monthly finance file, someone has to keep the script running every month.

Exporting a Jira timesheet to Excel with an app

In our app, Timesheets for Jira, you get hours per person per project by switching the team timesheet to the Projects > Users view, then pressing Export and choosing XLSX and the date range. Full disclosure: we build it, and it is free. The file follows the view on screen. In Projects > Users that means three levels: a row per project, a row per person under it, and that person's issues under each person. Days are columns, followed by Total Hours. Levels show by indentation only; the sheet has no formulas or styling. The other views (Users > Issues by default, Projects > Issues, Epics > Issues, Issue Types and Issues only) export the same way.

Team timesheet for Backend Team switched from Users > Issues to Projects > Users, then the Export timesheet dialog: XLSX selected, date range set to 2026-02-01 to 2026-02-28 in the calendar, Rate and Total Cost already in Columns, Export pressed and an Export Complete message shown
Projects > Users on the team timesheet, then Export as XLSX for February. Rate and Total Cost are already selected for a manager.

Optional columns add email, project key and name, issue type, epic key and name, status, and original and remaining estimates in hours. Managers and Jira admins also get Rate and Total Cost, so finance can price the hours from the same file. Team leads do not get these two columns. The .xlsx has two sheets: Timesheet holds the grid, Info holds the team, export date, period, total hours and member count. CSV, PDF and iCal are also available.

Timesheet sheet of the exported .xlsx: project rows such as Customer Support (JSM), Demo and Marketing, each with indented person rows and further indented issue rows, day columns from Mon Feb 16 to Sat Feb 28, then Total Hours, Rate and Total Cost; an Info sheet tab sits next to Timesheet
The Timesheet sheet of the February file: project, person, issue, one column per day, then Total Hours, Rate and Total Cost.

Beyond the file, a timesheet app adds timesheet approvals, a capacity report, and an email reminder, the day before the submission deadline, to people who have not submitted their timesheet.

Before you send it to finance

Check the period boundaries: a worklog started late in the evening can land on a different day depending on which time zone the tool uses, and at month end that moves hours into the wrong month.

Check the number format. Our export writes decimal hours, unrounded, so 20 minutes is 0.3333…, and it never writes hours and minutes. Set the number format in Excel before sending. Other tools may write 1h 30m.

Check who is missing. In a native or REST export, a person who logged nothing produces no rows. In our Users > Issues export they appear as a blank row, unless "Hide empty timesheets" is on, which is easy to miss. Our capacity report (Reports, Capacity tab, for leads and above) shows the gap: expected against actual hours per member, with holidays and approved absences already excluded.

Limitations

Our export writes values in a fixed layout, the one of the view you chose. It does not fill your own Excel template and adds no formulas or pivot tables. One export covers up to one month and up to 1,000 worklogs, so a large team may need to export in parts. The REST route needs code and an API token, not admin rights. And no export fixes data that was never logged: if the team logs time weekly from memory, the file will be tidy and wrong.

Facts and links checked on September 23, 2026, against Jira Cloud, Atlassian's public documentation and the current version of the app.