# Spreadsheet Import Tool

**URL:** <https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500>\
**Category:** Ignition Exchange\
**Tags:** ignition81, scripting\
**Created:** [July 20, 2024, 1:33pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500 "2024-07-20T13:33:38Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 20, 2024, 1:33pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/1 "2024-07-20T13:33:38Z")

</div>

Now [in the Ignition Exchange](https://inductiveautomation.com/exchange/2660/overview).

~~While waiting on IA review, i~~ Interested parties can also get this here:

[https://www.automation-pros.com/SpreadsheetImportTool/](https://www.automation-pros.com/SpreadsheetImportTool/)

I intend to publish at this link as well as in the Exchange going forward.

Announcements will be in this topic. (:

---

<div class="post-metadata">

**Author:** ![msteele](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/msteele/32/77889_2.png) [@msteele](https://forum.inductiveautomation.com/u/msteele)\
**Post date:** [July 24, 2024, 4:56pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/2 "2024-07-24T16:56:11Z")

</div>

Thanks for your work on this and publishing it for the community.

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [July 25, 2024, 6:47pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/3 "2024-07-25T18:47:08Z")

</div>

Had a chance to poke around at this today, it's a nice tool Phil, thanks for sharing.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 2, 2024, 3:10pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/4 "2024-08-02T15:10:54Z")

</div>

Now published:

> **[Ignition Exchange](https://inductiveautomation.com/exchange/2660/overview)**
>
> Discover, share, and download community made Ignition resources in collaboration with your organization or the Ignition community.

---

<div class="post-metadata">

**Author:** ![Mitesh\_Maniar](https://avatars.discourse-cdn.com/v4/letter/m/45deac/32.png) [@Mitesh\_Maniar](https://forum.inductiveautomation.com/u/Mitesh_Maniar)\
**Post date:** [August 6, 2024, 11:39pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/5 "2024-08-06T23:39:27Z")

</div>

Hello,  
can anyone please give brief explanation about use of this tool and benefits ? thanks for all your help.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 7, 2024, 11:33am UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/6 "2024-08-07T11:33:39Z")

</div>

I answered your question over here:

> [@Do's and Don'ts when developing First Project with Ignition?](https://forum.inductiveautomation.com/t/dos-and-donts-when-developing-first-project-with-ignition/93592/30):
>
> Many Ignition applications/deployments use many device connections with corresponding UDT instances, or with large collections of UDT instances, or with a mix of UDTs and arbitrary tags and tag folders. It is common for there to be repeating patterns for most of this, but with enough odd elements for Ignition's instance creation wizard to be unsuited. (Well, the wizard is awfully simplistic--I never use it.) With this tool, you can create structures in an Excel workbook that describes all of …

Reposting questions in more than one place is against [this forum's rules](https://forum.inductiveautomation.com/faq).

---

<div class="post-metadata">

**Author:** ![kcarter8](https://avatars.discourse-cdn.com/v4/letter/k/c89c15/32.png) [@kcarter8](https://forum.inductiveautomation.com/u/kcarter8)\
**Post date:** [August 7, 2024, 8:16pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/7 "2024-08-07T20:16:28Z")

</div>

I was about to go through the process of putting my version of this on Exchange. this one is much nicer though haha

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [August 7, 2024, 8:18pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/8 "2024-08-07T20:18:42Z")

</div>

😁

---

<div class="post-metadata">

**Author:** ![msteele](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/msteele/32/77889_2.png) [@msteele](https://forum.inductiveautomation.com/u/msteele)\
**Post date:** [September 7, 2024, 3:04am UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/9 "2024-09-07T03:04:35Z")

</div>

Feature request: After the file is selected and handled by Apache POI but before the workbook is processed, list the sheets within the workbook and allow the user to select/de-select sheets for processing.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [September 7, 2024, 4:03am UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/10 "2024-09-07T04:03:07Z")

</div>

Hmmm. Challenging idea. Will consider how to do that.

---

<div class="post-metadata">

**Author:** ![msteele](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/msteele/32/77889_2.png) [@msteele](https://forum.inductiveautomation.com/u/msteele)\
**Post date:** [September 10, 2024, 1:36pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/11 "2024-09-10T13:36:02Z")

</div>

For anyone at ICC next week, I'll be leading a table talk on Tuesday 9/17 at 9:45 a.m. which will include a discussion about the flexibility and power of this tool within our workflow.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [September 10, 2024, 2:44pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/12 "2024-09-10T14:44:39Z")

</div>

> [@msteele](#):
>
> table talk on Tuesday 9/17 at 9:45 a.m.

I plan to be there to answer related questions.

---

<div class="post-metadata">

**Author:** ![Steve\_Laubach](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/steve_laubach/32/60900_2.png) [@Steve\_Laubach](https://forum.inductiveautomation.com/u/Steve_Laubach)\
**Post date:** [September 10, 2024, 3:33pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/13 "2024-09-10T15:33:40Z")

</div>

I plan to be there with a colleague (also named Phil). Looks like a fantastic tool.

We look forward to meeting you. You're a living legend.

---

<div class="post-metadata">

**Author:** ![msteele](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/msteele/32/77889_2.png) [@msteele](https://forum.inductiveautomation.com/u/msteele)\
**Post date:** [September 17, 2024, 3:22pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/14 "2024-09-17T15:22:51Z")

</div>

Prepping a demo from a table by the pavilion while waiting for the registration line to die down. Feel free to stop by and say hi, or join us at 9:45 a.m. PDT in the pavilion to _hopefully_ see how this works.

---

<div class="post-metadata">

**Author:** ![michael.flagler](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/michael.flagler/32/26272_2.png) [@michael.flagler](https://forum.inductiveautomation.com/u/michael.flagler)\
**Post date:** [September 17, 2024, 9:40pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/15 "2024-09-17T21:40:52Z")

</div>

Great table talk! Really enjoyed it!

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [March 20, 2025, 10:50pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/16 "2025-03-20T22:50:34Z")

</div>

Phil helped me on the side today... updating this topic in case it helps others.

I have a unique tag/naming structure and was trying to separate into logical chunks to take advantage of local variables/% string formatting options. The part that was unique was two characters and started with a number. One cell value was `1F`, which is parseable as a number, thus would evaluate as `1.0` not `1F`, which is not what I wanted. For me, there wasn't an option to rename or not start with a number, so Phil suggested using eval().

I had a column named `ID`, I renamed this column to `IDraw` and added a leading underscore to the value(s). You could also add a space or other character that you see fit. Next I added a column to the right of `ID`, named `IDEval` and the cell value was `IDraw.strip("_")`. From my testing, `IDEval` can't be blank.

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [March 28, 2025, 1:05am UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/17 "2025-03-28T01:05:02Z")

</div>

Hey Phil, I guess I missed the post where you mentioned alarms are not supported: [What's the best practices for Alarm integer Array? - #4 by pturmel](https://forum.inductiveautomation.com/t/whats-the-best-practices-for-alarm-integer-array/96589/4)

Is there any workaround on this, or just not possible right now?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [March 28, 2025, 1:27am UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/18 "2025-03-28T01:27:05Z")

</div>

Just not possible. A special case needs to be made to decode a JSON cell content for the alarms property and convert to alarm definitions. Non-trivial.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [March 28, 2025, 12:08pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/19 "2025-03-28T12:08:01Z")

</div>

> [@pturmel](#):
>
> Non-trivial

I agree with this, haha. Alarms are a pain in the butt to create from a spreadsheet... However I have created the JSON structure painfully with formulae to plug in alarm prop values from other cells. It's very fragile

---

<div class="post-metadata">

**Author:** ![jlandwerlen](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@jlandwerlen](https://forum.inductiveautomation.com/u/jlandwerlen)\
**Post date:** [May 21, 2025, 8:18pm UTC](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500/20 "2025-05-21T20:18:02Z")

</div>

Hey Phil, is there anyway to write to UDT parameters for nested UDTs?

[Next page](https://forum.inductiveautomation.com/t/spreadsheet-import-tool/93500.md?page=2)
