Version 25 (modified by farialima, 6 years ago) (diff)


Import or update tickets in batch from an Excel or CSV file into Trac


This plugin lets you import into Trac a series of tickets from a CSV file or (if the xlrd library is installed) from an Excel file.

You can also use it to modify tickets in batch, by saving a report as CSV, editing the CSV file, and re-importing the tickets.

This plugin is very useful when starting a new project: you can import a list of requirements that may have come from meeting notes, list of features, other ticketing systems... It's also great to review the tickets off-line, or to do massive changes to tickets.

Based on the ticket id (or, if no id exists, on the summary) in the imported file, tickets are either created or updated.

It is used by software products development teams daily on several projects in at least three companies.


Machine-wide installation

For a machine-wide installation, run as root on your machine:

  • easy_install for Trac 0.10, or
  • easy_install for Trac 0.11.

Trac instance installation

For an installation for only one Trac instance (on Trac 0.10, requires the Admin plugin):

xlrd installation (optional)

To be able to import Excel files, xlrd must be installed. xlrd is a Python library, not a Trac plugin. Take the latest binary from On windows, run the installer; on other platforms, just unzip the .zip, and copy the "xlrd" folder that it contains, into the "site-packages" folder of the Python lib, for example:

mkdir tmp
cd tmp
curl >
sudo cp -r xlrd-0.6.1/xlrd /usr/lib/python2.4/site-packages/

To verify that it's correctly installed, run python -c 'import xlrd' from the command line: it should not cause an error.


Restart Trac (or your Apache server). The "TicketImport" plugin should now appear in the "Manage Plugins" page of the Admin tab. Enable it. If you don't have the Admin plugin (on 0.10), you need to enable the plugin by putting:

talm_importer.importer.* = enabled

in your trac.ini file (under the "conf" directory of your Trac instance).

Then, you need to give some user(s) the right to user Import module. To do that, you must give them IMPORT_EXECUTE permission, either in the Admin UI (on 0.11) or with the admin command-line tool, like this:

    trac-admin /your/trac/installation/folder permission add your_user IMPORT_EXECUTE

Bugs/Feature Requests

This plugin has been tested extensively on Trac 0.11, and a little on Trac 0.10. Please report any issue !

Existing bugs and feature requests for TicketImportPlugin are here.

If you have any issues, create a new ticket.


You can check out TicketImportPlugin from here using Subversion, or browse the source with Trac. You can also download the zipped source from here.


Once you have enabled the plugin and given yourself IMPORT_EXECUTE permission, you will see a new Import tab in the main navigation. This tab contains a complete documentation on exactly how the import works, as well as a form to select the CSV or XLS file to upload:

Screenshot of the Import screen

Once you have uploaded it, a preview screen shows you what will be imported and let you confirm the import.

Change history for this plugin

[14097] by jun66j5 on 2014-08-17 03:09:08
ticketimportplugin: fixed a failure of unit tests with Trac 0.11.x
[14096] by jun66j5 on 2014-08-17 02:45:07
ticketimportplugin: remove temporary environment on teardown of each test
[14093] by jun66j5 on 2014-08-16 20:10:55
ticketimportplugin: fixed failures of unit tests with Trac 1.0 and later, also allow to run test by python test
[13313] by jun66j5 on 2013-07-02 17:34:37
ticketimportplugin: prevent reporting that the description has changes when a comment is posted even if the ticket isn't changed.
[12819] by jun66j5 on 2013-03-27 18:24:04
TicketImportPlugin: fixed fatal errors with a malformed csv file and improved handling such a file
[12818] by jun66j5 on 2013-03-27 16:02:54
TicketImportPlugin: fixed failures of ImporterTestCase.test_celltypes_ticket_8804
[11805] by farialima on 2012-07-27 19:18:03
test cases and workaround for #10188
[11758] by farialima on 2012-07-23 15:22:44
Correctly handle case in relative fields
[11755] by farialima on 2012-07-23 12:25:54
Added a test for import with ticket reference
[11754] by farialima on 2012-07-23 11:55:41
Made all tests pass
[11745] by farialima on 2012-07-20 20:07:57
Applied patch for #7812... not tested much, but it's not breaking anything :)
[11744] by farialima on 2012-07-20 19:22:55
Fixed the tests so that they run on my machine. I hope they will run on other people's machines too :)
[11514] by jun66j5 on 2012-04-25 05:54:28
Fixed unicode characters in id column when defaultencoding is ascii
[11450] by jun66j5 on 2012-04-05 09:35:57
Fixed a problem acessing None with lack of the columns in a row
[11449] by jun66j5 on 2012-04-04 08:31:07
Follow-up to r11448, adds test files for the changes
[11448] by jun66j5 on 2012-04-03 14:17:49
Force to use 'new' if status of a new ticket is empty
[11447] by jun66j5 on 2012-04-03 08:40:03
Add *.ctl files for Trac 0.11 and sort records before comparison
[11210] by jun66j5 on 2012-01-28 16:02:34
Ignores more field values than the field names (refs #9730).
[11136] by farialima on 2012-01-12 17:24:17
Second Temptative fix for #9684. It's really a bug in Agilo that we have to work around...
[11135] by farialima on 2012-01-12 16:52:06
Upped version
[11134] by farialima on 2012-01-12 16:36:27
Temptative fix for #9684
[10634] by jun66j5 on 2011-09-02 14:22:41
Uses Environment.get_known_users() instead of accessing directly session table.
[10633] by jun66j5 on 2011-09-02 10:03:23
Fixed a problem that TypeError raises when no missing field.
[10230] by jun66j5 on 2011-05-24 18:28:06
fixed #8804, convert value of cell which is number, boolean or error cell to string.
[10088] by jun66j5 on 2011-04-16 10:28:30
Uses assertEquals instead of difflib in unit tests cause of difference in the output of PrettyPrinter.format between python 2.4 and 2.6.
[10087] by jun66j5 on 2011-04-16 10:28:07
Fixed the problem with number cell in headers.
[10076] by jun66j5 on 2011-04-13 05:28:08
Follow-up to r10049, fixes the problem with non-ascii field name
[10049] by jun66j5 on 2011-04-08 16:00:20
fixed #8410, support charset encoding of csv file to import
[10028] by farialima on 2011-04-05 17:18:43
Fixed tests for #8673
[10026] by farialima on 2011-04-05 17:09:42
Fix for #8673
[10018] by farialima on 2011-04-04 18:05:55
Fix for #8667
[9772] by farialima on 2011-01-18 21:08:34
Fix for #8411
[9736] by farialima on 2011-01-04 18:33:56
Fix for #8357: support Excel date and datetimes
[9728] by farialima on 2011-01-04 03:34:06
Added a warning about non-ASCII characters for #4458
[9727] by farialima on 2011-01-04 03:27:32
Fix for #7205
[9726] by farialima on 2011-01-04 03:10:07
Fix for #7176
[9725] by farialima on 2011-01-04 02:48:40
Fix for #7658 (i.e. not really a fix, but a better message)
[9724] by farialima on 2011-01-04 02:12:47
test for the second part of #7679 ('project' custom field does not import): unable to reproduce
[9723] by farialima on 2011-01-04 02:07:56
Fix for the first part of #7679 ('status' field does not import)
[9716] by farialima on 2011-01-03 23:24:26
Fix for #6220
[7890] by farialima on 2010-04-27 00:28:53
Made the tests pass on Trac 0.12
[7882] by farialima on 2010-04-23 21:46:26
Fix to previous commit: made it run on Python2.4
[7881] by farialima on 2010-04-23 20:16:56
Added support for \'comment\' column (import them as comments). Also a fix when a lookup starts with a space
[5305] by farialima on 2009-02-23 20:25:01
Upped version and made a build with fix for bug #4458
[5304] by farialima on 2009-02-23 20:10:24
fix for bug #4458
[5303] by farialima on 2009-02-23 20:04:55
fix for bug #4458
[5132] by farialima on 2009-01-14 15:26:09
Added test for #4450
[5131] by farialima on 2009-01-14 15:03:34
fix for #4450, and a few cleanups
[5093] by farialima on 2009-01-06 16:27:31
Fix for ticket #4392
[5091] by farialima on 2009-01-05 17:06:01
moved 0.10 version to the 0.10 branch
[5090] by farialima on 2009-01-05 17:03:08
upgraded to 0.11: use Genshi instead of Clearsilver
[5084] by farialima on 2009-01-03 22:21:43
Created branch for 0.11
[5083] by farialima on 2009-01-03 17:20:54
Initial import of the TicketImportPlugin. Version is 0.6. Tested on Trac 0.11, and probably working on Trac 0.10
[5082] by farialima on 2009-01-03 15:56:33
New hack TicketImportPlugin, created by farialima


Author: farialima

Attachments (1)

Download all attachments as: .zip