Is it possible to create a non-dynamic/static table in a layout in ArcGIS Pro?

I would like to create a table to act as a revision box. If not a table, can text be entered with tabs and tab stops instead?

The only help I can find about tables relates to dynamic tables that populate automatically based upon the map.

  • Not an exact answer, but as a workaround, maybe maintain your table in Excel and add that to the layout?
    – Andy
    Oct 10, 2018 at 12:54
  • Interesting idea, but how do you add an excel table to a layout? Oct 15, 2018 at 12:03
  • See Adding a table to a layout. You needn't use Excel: you could also use any other type supported by Arc.
    – Andy
    Oct 15, 2018 at 12:43
  • It's pretty clunky having to create a new dataset just contain revisions but I guess it would work. Have some issues with usability - some of my team still create a separate shapefile for each polygon... Oct 15, 2018 at 13:01

2 Answers 2


To create a static table I would use graphic (line) and text elements, and then group the elements together on your layout.

If you are looking for something more like inserting a table in Word, then I think you may need to look for or post an ArcGIS Idea.

  • So the answer is static tables, tabs and tab stops are not supported? Oct 10, 2018 at 10:06
  • My solution would not aim to support tabs and tab stops. If it is just designed as a quick and dirty pseudo-table element.
    – PolyGeo
    Oct 10, 2018 at 10:14
  • 1
    The visual aspect is actually secondary - I am creating a template for use by myself and colleagues. "Quick and dirty" option of drawing lines and lots of text boxes is actually quite slow when it comes to having to adding new rows and likely to get screwed up by people using the template. I was interested in genuine native support. Oct 10, 2018 at 11:25
  • A table without a fixed number of rows sounds dynamic to me.
    – PolyGeo
    Oct 10, 2018 at 11:30
  • ESRI's concept of dynamic is data that is automatically populated - in the case of tables, from layer data or in the case of text environmental variables such as current time. In my case, the data would need to be input manually and would not update automatically. Hence describing it as "Static". Oct 15, 2018 at 12:01

Sort of inelegant...I've had to add blank "tables" to non-ArcGIS PDFs for print in the past (using Reportlab). Here is a short script that places vertical and horizontal lines on a layout, with some basic page coordinate math:

import arcpy

aprx = arcpy.mp.ArcGISProject("current")
lyt = aprx.listLayouts("Layout")[0]

### Define starting page coordinates (e.g. inches)
lowerLeft_X = 1.0
lowerLeft_Y = 5.0

### Define cell dimensions
cell_Height = 0.2
cell_Width = 0.5

### Define elments, and 
h_elms = lyt.listElements("GRAPHIC_ELEMENT", "Horizontal*")
v_elms = lyt.listElements("GRAPHIC_ELEMENT", "Vertical*")
rowCount = len(h_elms) - 1
colCount = len(v_elms) - 1

verBarHeight = rowCount * cell_Height
horBarWidth = colCount * cell_Width

for h_elm in h_elms:
    h_elm.elementPositionX = lowerLeft_X
    h_elm.elementPositionY = lowerLeft_Y
    h_elm.elementWidth = horBarWidth
    lowerLeft_Y += cell_Height
    print(f"Set {h_elm.name} at X={lowerLeft_X} and Y={lowerLeft_Y}, {h_elm.elementWidth} wide")

lowerLeft_X = 1.0

for v_elm in v_elms:
    v_elm.elementPositionX = lowerLeft_X
    v_elm.elementPositionY = lowerLeft_Y
    v_elm.elementHeight = verBarHeight
    lowerLeft_X += cell_Width
    print(f"Set {v_elm.name} at X={lowerLeft_X} and Y={lowerLeft_Y}, {v_elm.elementHeight} height")

Produces an output like this, that could perhaps be built on by moving/resizing text elements inside of each "table cell": enter image description here

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.