Importing spreadsheet data as layers into Adobe Illustrator

I have a spreadsheet with a TON of content that I need to import to layers via Illustrator. I have several columns that need to be imported for some business cards. So for instance name, email, phone, title.

Is there a way to import this spreadsheet into illustrator so that I can have one layer for each row via setting up some variables in the Illustrator file?

If not, this is going to take a VERY long time. I have about 100 I need to do.

** EDIT **

I initially posted this question in a general manner, using an example of business cards. Some folks came up with a great answer to this question, which was to use InDesign instead of Illustrator. Which in the example of creating business cards would have been the proper way to go. Trying to simplify my query obviously returned the wrong answers, so I’ll state the more complex example of what I’m trying to do:

I am creating slides for a video based on data from a spreadsheet. The guys doing the video need the file in illustrator, and they need the data from the spreadsheet on a separate layer per data set.

So that’s why I have to use illustrator, and why I have to do it the way that I’m trying.

I got about 75% of the way there by creating variables and data sets using Illustrator. I did a sample test of 5 data sets (Like I said I have about 100 in total), and I was able to create a new layer and paste the data set. But unfortunately, the way the AI actions work, I cannot select the new layer created, so it pastes everything on one layer.

In addition to this issue, I would first have to create an XML file, because the data sets cannot be imported from a spreadsheet. I haven’t looked into this, but this would be another process in itself.

So that’s where I’m at. Thanks for your help!


It’s not impossible, but it would take some legwork. You would need to export the spreadsheet into a format that is easily readable and modified, then translate that into a vector format that has the same attributes.

Luckily for you, both of those exist: CSV and SVG.

Take a look at a very basic SVG file with just some text:

<svg width="252" height="144" xmlns="">
<tspan x="0" y="0" font-family="'Helvetica" font-size="12">Bob Martin</tspan>
<tspan x="0" y="14.4" font-family="'Helvetica'" font-size="12">Head Honcho</tspan>
<tspan x="0" y="28.8" font-family="'Helvetica'" font-size="12"></tspan>
<tspan x="0" y="43.2" font-family="'Helvetica'" font-size="12">973-555-6544</tspan>

In Illustrator, this would look something like this:

Business Card

Now take a look at CSV, the less-hectic of the two:

Bob Martin,Head Honcho,,973-555-6544
Nick Ferry,Asst. Head Honcho,,973-555-6544

I don’t know how strong your programming background is, but hopefully you can see where this is going. You simply need to tokenize the CSV and inject the values into your SVG “template”. You’ll probably want to set display="none" on the <text> elements so that the groups are hidden by default when you open the file in Illustrator.

You’ll of course have to cater to your specifications, but the following PHP code worked for me:

$csv = "Bob Martin,Head Honcho,,973-555-6544\nNick Ferry,Asst. Head Honcho,,973-555-6544";
$csv_arr = explode("\n", $csv);

echo "<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"\" xmlns:xlink=\"\" x=\"0px\" y=\"0px\"\n";
echo " width=\"252px\" height=\"144px\" viewBox=\"0 0 252 144\" enable-background=\"new 0 0 252 144\" xml:space=\"preserve\">\n";

foreach ($csv_arr as $card) {
    $row = explode(",", $card);
     echo "<text display=\"none\">\n";
     echo "<tspan x=\"0\" y=\"0\" font-family=\"'Helvetica\" font-size=\"12\">{$row[0]}</tspan>\n";
     echo "<tspan x=\"0\" y=\"14.4\" font-family=\"'Helvetica'\" font-size=\"12\">{$row[1]}</tspan>\n";
     echo "<tspan x=\"0\" y=\"28.8\" font-family=\"'Helvetica'\" font-size=\"12\">{$row[2]}</tspan>\n";
     echo "<tspan x=\"0\" y=\"43.2\" font-family=\"'Helvetica'\" font-size=\"12\">{$row[3]}</tspan></text>\n";
echo "</svg>";

Source : Link , Question Author : Jeremy Miller , Answer Author : JohnB

Leave a Comment