Back to ERPNext in Excel
SheetXAI logo
ERPNext logo
ERPNext · Excel Guide

Import Timesheet Entries Into ERPNext From a Project Hours Workbook

The Scenario

You are a project accountant. The time-tracking tool your consultants use exported 200 rows of hours data into an Excel workbook — employee name in column A, project in B, task in C, hours in D, date in E. All of it needs to be in ERPNext as Timesheet records before you can bill clients this cycle.

ERPNext Timesheets are a particular structure — a header document per employee per day with a child table of time log entries. The data import template the ERP generates is different from your workbook layout. Some employee names in the export use display names that do not match how ERPNext stores them. And the last time you attempted a batch import using the data import tool, you spent three hours getting 40 rows in cleanly. This month you have 200.

The bad version of the billing cycle:

  • Reformat 200 rows to match ERPNext's Timesheet import template
  • Upload the batch, get validation errors on 34 rows
  • Debug each error: wrong employee reference, task not linked to project, date format mismatch
  • Fix and re-upload
  • Repeat until all 200 entries are confirmed
  • The billing run is delayed waiting for the timesheets to clear.

The fast version is one prompt.

The Easy Way: One Prompt in SheetXAI

SheetXAI reads your timesheet workbook and creates the ERPNext entries directly, handling the project-task-employee linkage through the API.

Open the SheetXAI sidebar and type:

Create ERPNext Timesheet entries for every row in the Weekly Hours tab. Column A is the employee name, column B is the project, column C is the task, column D is hours worked, and column E is the date. Write the ERPNext Timesheet document name into column F for each row. If a row fails, write the error into column F instead of skipping it.

SheetXAI processes all 200 rows, creates each Timesheet entry through the ERPNext API, and writes confirmation or error messages into column F. You know exactly which rows landed without opening ERPNext's import log.

What You Get

200 rows of import confirmation:

  • Successful rows — the ERPNext Timesheet document name in column F
  • Failed rows — the specific error in column F (employee not found, task not linked to project, invalid date)
  • Billing reconciliation ready — filter column F for successful rows, total hours by project, confirm billable amounts

Column F is your billing audit trail. No separate ERPNext report needed.

What If the Data Is Not Quite Ready

Time-tracking exports have predictable problems. SheetXAI normalizes and inserts in one pass.

When the time tracker exported dates in a non-standard format

The export has "05/13/26" instead of "2026-05-13." ERPNext will reject them.

Reformat the dates in column E of the Weekly Hours tab from MM/DD/YY to YYYY-MM-DD. Then create ERPNext Timesheet entries for all rows using the corrected dates and write the document name into column F.

When some rows have fractional hours that need rounding for billing

The tracker logs "1.333" but billing rounds to the nearest quarter hour.

Round the hours in column D of the Weekly Hours tab to the nearest 0.25 for every row. Then create the ERPNext Timesheet entries and write the document names into column F.

When only billable entries should go to ERPNext

Column F in the workbook has a "Billable" flag. Non-billable time should not create Timesheet records.

Filter to rows in the Weekly Hours tab where column F contains "Yes." Create ERPNext Timesheet entries for those rows using employee (A), project (B), task (C), hours (D), and date (E). Write the Timesheet document name into column G. Write "NON-BILLABLE — skipped" into column G for all other rows.

When employee names in the workbook do not match ERPNext employee IDs

The tracker uses display names. ERPNext needs employee IDs. The lookup table is in the Employees tab.

For each row in the Weekly Hours tab, look up the employee name from column A in the Employees tab (column A = display name, column B = ERPNext employee ID). Use the matched employee ID when creating the ERPNext Timesheet entry. Write "EMPLOYEE NOT FOUND" into column F and skip the row if no match exists. Write the Timesheet document name into column F for all successfully created records.

The pattern: format correction, lookup, and the ERPNext insert are one instruction. No pre-cleaning workbook step.

Try It

Get the 7-day free trial of SheetXAI and run it against your next timesheet export workbook. The ERPNext integration is included in every SheetXAI plan. For other project and billing workflows, see how to export ERPNext projects and tasks for resource utilisation reporting or the ERPNext in Excel overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more