I was using Microsoft Paint to make a hierarchy chart, but realized that it is no good as you cannot easily modify text and shapes once you click away from them.

So I tried libre/open office and a bunch of other tools but none of them could do what I want. So instead of wasting time I just made a text document which used strings of text, they were separated horizontally by '>' characters and are separated vertically by line breaks.

So it is sort of a lattice. I have managed to convert this into an excel spreadsheet where each cell contains a single string.

However I am not sure how to convert the text document or excel document into a hierarchy chart. Since there is so many strings, manually copying and pasting them all into their own textboxes is not an option I wanna go for right away.

An example of what I have and what I need:

string1 > string2 > string3 > string4 > string5
string6 > string7 > string8 > string9
string10 > string11 > string12 > string13 > string14
string15 > string16 > string17 > string18 > string19 > string20

Converted To This:

enter image description here

I have tried ms Excel smartart, and 'link data to shapes' in MS visio but all smartart templates limit the number of shapes, and visio can only do one column and you cannot simple click on the data shape to edit the text, a data shape is unlike a textbox.

Is there a way to automatically convert this?

  • Do you know of Inkscape? It produces SVG graphics, which are very portable (can be used almost anywhere, unlike visio files), and can be formatted and manipulated... erm, relatively easily. The SVG files are XML documents. This means you will have to do some scripting or templating to convert your plain text to the XML. So, depending on your existing skill set, it can be very easy, or if it's too daunting, forget I mentioned it. – jehad Jul 12 '16 at 14:56
  • @jehad can you click and drag/resize the textboxes around. – user616042 Jul 12 '16 at 20:33
  • Yes. Inkscape is just a drawing program that outputs SVG (which is the really powerful and portable XML), and you can resize and draw anything you like. My suggestion is more about using the output format of Inkscape (i.e. the SVG/XML), and writing a script (with templating) to convert your text to this format. Inkscape is just a convenient way to start understanding what the XML looks like. Realistically, if you don't have programming or scripting experience, I'd suggest another approach, like dav's answer below. – jehad Jul 12 '16 at 22:07
  • @jehad I may give learning XML a go, or seeing if someone on stack overflow can do it, becaue I have a feeling that there aren't too many other options – user616042 Jul 13 '16 at 2:07

You can do this in Excel-although it's not as streamlined as you might prefer. Simply use a stacked bar chart with create your segments, then label them with your strings. It can look something like this:

Hierarchy Chart

This approach doesn't use SmartArt or VBA-simply an Excel table for data organization and a stacked bar chart (see image below). I also use Rob Bovey's excellent Chart Labeler to make life (and labeling) easier. You can add as many columns (for series) or rows (for segments) as you'd like. It would probably be best to build the chart for the maximum anticipated columns and give them a 0 value unless filled.

enter image description here

  • can I split these textboxes up in order to add lines later on, and is this Smartart, cause any chart type I choose there has a limited number of shapes, not enough for all the strings. – user616042 Jul 12 '16 at 15:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy