Click here to Skip to main content
Licence CPOL
First Posted 25 May 2011
Views 5,177
Bookmarked 2 times

Converting Mind Map Plan into an Excel Table

By | 25 May 2011 | Technical Blog
Converting Mind Map Plan into an Excel Table
A Technical Blog article. View original blog here.[^]

I am a big fan of mind mapping. Especially for planning. When someone asks me to give an estimation for some piece of work, I split it in sub tasks. If I can't predict the particular sub task effort, I just continue splitting until I'm confident. I prefer estimating in days.

I use FreeMind. It's an open source cross platform solution that has everything I need for planning.

Here is a sample plan:

figure1.png

So, the numbers show my estimations and the ticks represent the status (complete). Now I want this to be more presentable for a manager. I was too lazy to fill the Excel spreadsheet manually, so I tried to find some options in FreeMind. And that's what I've found:

figure2.png

There is an XSLT export. I'm not a big fan of XSLT, but this seamed to be the right solution. I've spent some time hacking, and here is my XSLT:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="xml" indent="no"/>
    <xsl:template match="/">      
      <xsl:processing-instruction name="mso-application">
        <xsl:text>progid="Word.Document"</xsl:text>
      </xsl:processing-instruction>
        <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
           xmlns:o="urn:schemas-microsoft-com:office:office"
           xmlns:x="urn:schemas-microsoft-com:office:excel"
           xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
           xmlns:html="http://www.w3.org/TR/REC-html40">          
            <Worksheet ss:Name="{/map/node[1]/@TEXT}">
                <Table>
                    <Row>
                        <Cell>
                            <Data ss:Type="String">Task</Data>
                        </Cell>
                        <Cell>
                            <Data ss:Type="String">Estimation</Data>
                        </Cell>
                        <Cell>
                            <Data ss:Type="String">Status</Data>
                        </Cell>
                    </Row>
                    <xsl:for-each select="//node[count
			(child::icon[starts-with(@BUILTIN, 'full-')]) > 0]">
                        <Row>
                            <Cell>
                                <Data ss:Type="String">
                                    <xsl:for-each select="ancestor-or-self::node
					[count(ancestor::*) > 1]">
                                        <xsl:value-of select="@TEXT"/>. </xsl:for-each>
                                </Data>
                            </Cell>
                            <Cell>
                                <xsl:attribute name="ss:Formula">
                                    =
                                <xsl:for-each select="child::icon
				[starts-with(@BUILTIN, 'full-')]">
                                    <xsl:value-of select="substring-after
				(@BUILTIN, '-')"/>+
                                </xsl:for-each>0</xsl:attribute>
                                <Data ss:Type="Number"></Data>
                            </Cell>
                            <Cell>
                                <Data ss:Type="String">
                                  <xsl:choose>
                                    <xsl:when test="child::icon[@BUILTIN = 'button_ok']">
                                        Complete
                                    </xsl:when>
                                    <xsl:otherwise>NotStarted</xsl:otherwise>
                                  </xsl:choose>                                  
                                </Data>
                            </Cell>
                        </Row>
                        <xsl:apply-templates/>
                    </xsl:for-each>
                </Table>
            </Worksheet>
        </Workbook>        
    </xsl:template>    
</xsl:stylesheet>

This turns the previous map into this:

figure3.png

Formatting is done manually, but I will add this to XSLT in future. But currently, it suits me.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

PavelFedulov



Russian Federation Russian Federation

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
QuestionMindMap *.mm file - does not work for me yet! PinmemberCLECOENT5:40 16 Mar '12  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web01 | 2.5.120517.1 | Last Updated 25 May 2011
Article Copyright 2011 by PavelFedulov
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid