Generate index cards, wiki pages and pdf files from your product backlog spreadsheet – Part 2

Agile, Media wiki

In this article we’ll extract information from an MS Excel spreadsheet using python’s xlrd library.

Advertisements

Generate index cards, wiki pages and pdf files from your product backlog spreadsheet – Part 1

Agile, Media wiki, Project management

Henrik Kniberg  has an excellent  Microsoft Excel spreadsheet for tracking Agile/SCRUM product backlogs.

On Windows platforms, there’s even a button to generate  printable story index cards from the backlog items.

However as a Mac (MS office for Mac) user and Linux (OpenOffice/LibreOffice) user I found that the macros simply didn’t work for me, even after a bit of hacking.  OpenOffice’s VBA implementation has some interesting incompatibilities with the Microsoft equivalent – and Microsoft, in their infinite wisdom, have removed the VBA support from MS Excel for Mac  – and so are pushing me firmly towards an OSS solution.

I also faced an additional challenge: As well as index cards, I also the need to generate a readable PDF version of the document (using data read from the spreadsheet) and the ability to generate a mediawiki page (again using data read from the spreadsheet).

I want a solution that will work both on Linux (ubuntu) and Mac OSX  (though the solution I came up with probably ought to work on Windows too).

                /---> index cards
Spreadsheet --->
                \---> mediawiki page
                   \---> PDF document

To achieve the desired functionality and portability, I elected to use my favourite scripting language, python and the  excellent xlrd module for reading Microsoft Excel spreadsheets.

Automatically updating/replacing/editing a mediawiki page from a python script with mwclient – an example

Agile, Media wiki, Project management

Many workplaces have mediawiki wikis – and these are often the information hub for a team or, indeed, the entire organisation.

Rather than generating  a new web page on a different web server to display a semi-regularly updated computer generated report, I thought (perhaps) it could be convenient to have a tool which permitted the easy replacement of a particular page.

I recently undertook to develop such a tool – and, in researching, discovered the excellent mwclient library   – although it _is_ somewhat lacking in examples/documentation.

As luck had it, the reporting tool I was using already generated output in mediawiki markup  on stdout – so all I needed to do was write a tool that could read a page contents from stdin and then upload it to a predefined page on wiki.