I am trying to create a street index a City. I have a table that has all the street names and their grid references. I am looking to create a street index using that. I think turning off the undesired fields off leaving only the main three columns I need and then outputting that would work. That instead creates a really long table. I would like to break that table into columns so I can add it to street maps. In the end I need an index that looks like this.

Street Index sample

That is the end goal. If there is a way through python I am willing to attempt that as well. That right now is created by polylines and a white polygon in the background and an annotation layer for the text. All done by hand. I need to have it automated so once a new input is made the user does not have to create and enter in a new annotation and create the correct size of a table.

I am using ArcGIS 10.3 on a Windows 7 computer. Let me know if any additional information is needed.

  • Related questions: gis.stackexchange.com/questions/93519 and gis.stackexchange.com/questions/4727 As far as I know, working with/formatting tables is pretty limited in ArcGIS. You may want to explore using Reports to do this.
    – Chris W
    Commented May 26, 2015 at 18:14
  • I have followed the links to get to the point where I have an excel file but then that is just two columns with over 2000 rows. I need to build a table even if it is just using lines and annotations like the table above, but instead of done by hand have it done by using arcpy or a tool. I will take a look at reports though.
    – Sharm
    Commented May 26, 2015 at 18:17
  • 1
    You should be able to get three columns into Excel. Getting those three long columns to properly break up to a page layout is another story. Usually such index pages are created outside of Arc and then incorporated into the final document. Unless the index appears on each page and only relates to the streets/grids on that page, which would be dynamic table. Some other questions that may be of use: gis.stackexchange.com/questions/85592 and gis.stackexchange.com/questions/37025 and gis.stackexchange.com/questions/81986
    – Chris W
    Commented May 26, 2015 at 18:26
  • I agree with Chris, this table of yours has over 2000 records, fitting it into your page layout and beside your map is the main issue of your question. Commented May 26, 2015 at 19:07

3 Answers 3


I don't believe there is any way to achieve the layout you are seeking with a native table in ArcMap.

There is an alternative approach which may be easier to maintain and that is using Excel.

  1. Create your 12 column table as shown in your example above using Excel.
  2. Save this document.
  3. In Layout, insert an Object, make sure you are creating from a file and that Link is ticked on

Step 1 is achieved by you copying the original table into Excel and YOU manually chopping it up into 12 columns (or what ever you desire). You need to chop it up as to my knowledge there is no automatic way of arranging the table as you desire.

As you have chosen it to be a Link any additional edits to the Excel document will be reflected in the inserted table in your Layout.

  • Yeah it seems like that is the way to do it for now. thanks for all of your replies guys. Hopefully this issue is addressed in an update. You would think breaking up an attribute table would not be so hard in the new releases of ArcGIS.
    – Sharm
    Commented May 26, 2015 at 19:13
  • Is there a way to create polylines such as the ones in the table above in python? I was thinking about just creating the grid in python and then building the annotations from the excel table in python as well. Reformatting that table will take forever for every map that is made. There are over 2000 streets. Having a script that can do most of the work would be very helpful I would think.
    – Sharm
    Commented May 27, 2015 at 13:21

I created a street index like your issue. Old school AML programs back in the day (2000). A map like road atlas with the street index to the right. This still can be done in GIS and Python. I would recommend working through this issue one piece at a time. You can use excel but since you are working in GIS it would be better if you create a file geodatabase FGDB with all the data. I would use only python for the whole process but a combination of ArcMap and Python will work.

First, create a table with unique street names.

Second, add columns as needed. This table will capture all the iterations. Example: street prefix, street name, street type, street suffix, street name full ( N Main St, Main St N...), Grids - g1, g2, g3, etc. (I would add 10 grid numbers), counter to capture how many grids added to that unique street name.

Third, use the street against the grid FC, what you do is clip and then iterate through each of those clipped streets and add that grid number to the table with a select statement.

So, its clip streets from grid, iterate thorough each street in that subset, select unique street name in table, calculate values. You would use the counter (stcntr += 1) column to calc the correct grid column.

Example: N Main St, A, B, ,,,,,,,,2 and all the other columns you added. N Main St, Grid A, Grid B, with 2 iterations

Fourth, after all the iterations you will go through the unique street name table to create another table.

This would be the final table and the hardest to configure because of the specific code. Example, N Main St GA-GE, GW, GX Example, GA-GE (GA,GB,GC,GD,GE Then GW and GX).

You would need to write code to sort or capture A,B,C… Once you have it set up the final process is table (raw data) to final table.

The next step is to add the index to the map. I used word two column configuration and copy and paste. It is a manual process to keep it updated and I added new streets monthly or as needed.


Here is what I did. First, I use SQL (specifically SQL Server spatial data type' method) to find street line feature class intersecting grid polygon feature class and save the result (street name and grid index) in a table. Then, I use python to format the result and create a EMF image file. Finally, I insert that EMF file into the layout of a .aprx to create a PDF map with street index table. See attachment Wards.pdf.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.