# Ignition user-lib packages

**URL:** <https://forum.inductiveautomation.com/t/ignition-user-lib-packages/53794>\
**Category:** Ignition\
**Created:** [December 6, 2021, 1:24pm UTC](https://forum.inductiveautomation.com/t/ignition-user-lib-packages/53794 "2021-12-06T13:24:57Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![chaoliang](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@chaoliang](https://forum.inductiveautomation.com/u/chaoliang)\
**Post date:** [December 6, 2021, 1:24pm UTC](https://forum.inductiveautomation.com/t/ignition-user-lib-packages/53794/1 "2021-12-06T13:24:57Z")

</div>

I am trying to use xlsxwriter to generate report on excel. But I found that this package was not installed on the ignition gateway under “C:\Program Files\Inductive Automation\Ignition\user-lib\pylib”.

I thought this package should be default package by ignition.  
Here’s the ignition version installed.  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/e/b/eb89e2a0d98d95f30bdf723d5c7962e724bb37e5.png)  
Here’s packages installed. It misses numpy, xlsxwriter and some other packages.  
Can anyone help to advise what causes this issue?  
Also I tried to copy the xlsxwriter folder from my local ignition folder to the remote gateway, but it’s not working after the copy is completed, still saying the xlsxwriter lib cannot be found.  
Should I reboot the remote gateway? It has multiple projects running at the moment, not easy to find a suitable time to reboot it.  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/1/c1663d123853b58f65e9e8d134511d46222667e7.png)

---

<div class="post-metadata">

**Author:** ![chaoliang](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@chaoliang](https://forum.inductiveautomation.com/u/chaoliang)\
**Post date:** [December 6, 2021, 1:26pm UTC](https://forum.inductiveautomation.com/t/ignition-user-lib-packages/53794/2 "2021-12-06T13:26:21Z")

</div>

On my local machine and other machine with ignition installed, the pylib folder is like this:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/c/ccfe0ff3c76d4753afa370d40e22da13d09f9d05.png)

---

<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:** [December 6, 2021, 1:40pm UTC](https://forum.inductiveautomation.com/t/ignition-user-lib-packages/53794/3 "2021-12-06T13:40:06Z")

</div>

Jython can’t use python libraries that require C DLLs.

---

<div class="post-metadata">

**Author:** ![chaoliang](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@chaoliang](https://forum.inductiveautomation.com/u/chaoliang)\
**Post date:** [December 7, 2021, 2:08am UTC](https://forum.inductiveautomation.com/t/ignition-user-lib-packages/53794/4 "2021-12-07T02:08:27Z")

</div>

The xlsxwriter was installed on the other ignition gateway except for remote gateway. Was it because some different setting during installation?

The xlsxwriter was running fine on my local gateway.

---

<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:** [December 7, 2021, 2:13am UTC](https://forum.inductiveautomation.com/t/ignition-user-lib-packages/53794/5 "2021-12-07T02:13:30Z")

</div>

No idea. I point everyone needing Excel file support to the Apache POI libraries that are standard in Ignition v8+.

---

<div class="post-metadata">

**Author:** ![chaoliang](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@chaoliang](https://forum.inductiveautomation.com/u/chaoliang)\
**Post date:** [December 7, 2021, 2:31am UTC](https://forum.inductiveautomation.com/t/ignition-user-lib-packages/53794/6 "2021-12-07T02:31:30Z")

</div>

Thanks for pointing out this lib.

I saw other posts mentioning the apache poi but I wasnt able to find an example or user manual on how it is used to write to excel. All I can find it how to read from excel.

Would you please advise where I can find the instruction manual?

Regards

---

<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:** [December 7, 2021, 3:23am UTC](https://forum.inductiveautomation.com/t/ignition-user-lib-packages/53794/7 "2021-12-07T03:23:33Z")

</div>

It is an open-source project:

[https://poi.apache.org/](https://poi.apache.org/)

The JavaDocs are most important. Keep in mind that you’d be using jython syntax with the java API. There are examples in Ignition here on the forum (by others) of both reading and writing. Ignition’s built-in scripting tools for excel (`system.dataset.exportExcel` and `system.dataset.toExcel`) both use this library under the hood.

---

<div class="post-metadata">

**Author:** ![chaoliang](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@chaoliang](https://forum.inductiveautomation.com/u/chaoliang)\
**Post date:** [December 7, 2021, 5:51am UTC](https://forum.inductiveautomation.com/t/ignition-user-lib-packages/53794/8 "2021-12-07T05:51:34Z")

</div>

Thank you.

I will go through the project help files.

Just one more thing, Is apache able to open an excel template, fill in the value at specific cells and save it to a different file?

---

<div class="post-metadata">

**Author:** ![chaoliang](https://avatars.discourse-cdn.com/v4/letter/c/ba8739/32.png) [@chaoliang](https://forum.inductiveautomation.com/u/chaoliang)\
**Post date:** [December 7, 2021, 10:29am UTC](https://forum.inductiveautomation.com/t/ignition-user-lib-packages/53794/9 "2021-12-07T10:29:01Z")

</div>

The following post answered my questions.

> <https://stackoverflow.com/questions/17556108/open-existing-xls-in-apache-poi/17570564#17570564>

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [December 7, 2021, 3:22pm UTC](https://forum.inductiveautomation.com/t/ignition-user-lib-packages/53794/10 "2021-12-07T15:22:30Z")

</div>

> [@chaoliang](#):
>
> The xlsxwriter was installed on the other ignition gateway except for remote gateway. Was it because some different setting during installation?

Someone manually installed it. No version of Ignition has 'shipped' with `xlsxwriter`. It looks like version 2.0.0 was the last with support for Python 2, but it claims no external dependencies besides the standard library, so you could try manually installing it.  
[https://xlsxwriter.readthedocs.io/changes.html#release-2-0-0-august-9-2021](https://xlsxwriter.readthedocs.io/changes.html#release-2-0-0-august-9-2021)

I would recommend POI though, for both performance and future maintenance debt.
