# Import and use POI Java

**URL:** <https://forum.inductiveautomation.com/t/import-and-use-poi-java/20794>\
**Category:** Ignition\
**Created:** [November 13, 2018, 7:15am UTC](https://forum.inductiveautomation.com/t/import-and-use-poi-java/20794 "2018-11-13T07:15:30Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![ciso9014](https://avatars.discourse-cdn.com/v4/letter/c/a5b964/32.png) [@ciso9014](https://forum.inductiveautomation.com/u/ciso9014)\
**Post date:** [November 13, 2018, 7:15am UTC](https://forum.inductiveautomation.com/t/import-and-use-poi-java/20794/1 "2018-11-13T07:15:30Z")

</div>

hi, how can i import and use POI library to work with excel files ?

---

<div class="post-metadata">

**Author:** ![KathyApplebaum](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kathyapplebaum/32/7261_2.png) [@KathyApplebaum](https://forum.inductiveautomation.com/u/KathyApplebaum)\
**Post date:** [November 13, 2018, 3:15pm UTC](https://forum.inductiveautomation.com/t/import-and-use-poi-java/20794/2 "2018-11-13T15:15:49Z")

</div>

Since you’re asking in 3rd party modules, I assume you want to do this as part of a module you’re writing, as opposed to doing this in a script. You would add the dependency like any other dependency – you can copy/paste from [Maven Central](https://mvnrepository.com/artifact/org.apache.poi/poi/3.14).

If you will ever be using the reporting module with your module, please note that module uses version 3.14 of Apache POI. Using another version in your module could cause conflicts.

---

<div class="post-metadata">

**Author:** ![ciso9014](https://avatars.discourse-cdn.com/v4/letter/c/a5b964/32.png) [@ciso9014](https://forum.inductiveautomation.com/u/ciso9014)\
**Post date:** [November 14, 2018, 8:33am UTC](https://forum.inductiveautomation.com/t/import-and-use-poi-java/20794/3 "2018-11-14T08:33:42Z")

</div>

Actually I set the wrong category 😅 ( now is set correctly )  
What I wish to achive is to import the POI library inside Igniton and use it for a script inside a button.  
I tried to import it inside `C:\Program Files\Inductive Automation\Ignition\lib\core\gateway` but with no success.  
Can you help me out?

---

<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:** [November 14, 2018, 1:37pm UTC](https://forum.inductiveautomation.com/t/import-and-use-poi-java/20794/4 "2018-11-14T13:37:24Z")

</div>

Consider using one of the existing modules that embed the Apache POI libraries, like Kymera’s [Office Document Module](https://inductiveautomation.com/moduleshowcase/module/kymera-systems-inc-kymera-office-document-module).

---

<div class="post-metadata">

**Author:** ![weixionglichina](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/weixionglichina/32/10650_2.png) [@weixionglichina](https://forum.inductiveautomation.com/u/weixionglichina)\
**Post date:** [June 4, 2023, 7:38am UTC](https://forum.inductiveautomation.com/t/import-and-use-poi-java/20794/5 "2023-06-04T07:38:01Z")

</div>

Hi @pturmel, How do we use latest version if we attend to?

---

<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:** [June 4, 2023, 12:00pm UTC](https://forum.inductiveautomation.com/t/import-and-use-poi-java/20794/6 "2023-06-04T12:00:48Z")

</div>

My advice no longer applies, as Ignition now has the Apache POI libraries in the base platform. No additional module required. You should search this forum for examples.

---

<div class="post-metadata">

**Author:** ![weixionglichina](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/weixionglichina/32/10650_2.png) [@weixionglichina](https://forum.inductiveautomation.com/u/weixionglichina)\
**Post date:** [June 5, 2023, 2:09am UTC](https://forum.inductiveautomation.com/t/import-and-use-poi-java/20794/7 "2023-06-05T02:09:04Z")

</div>

Yes, I saw them on core lib folder, I'd like to use latest version instead of old ones in my custmized module, how do we force to use latest version though?

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [June 5, 2023, 3:09am UTC](https://forum.inductiveautomation.com/t/import-and-use-poi-java/20794/8 "2023-06-05T03:09:16Z")

</div>

You won’t be able to do that, ClassLoaders delegate to parent first, you’re always going to load the older, provided version instead.

You might be able to replace the JARs included with Ignition but there’s no guarantee it won’t break something.

---

<div class="post-metadata">

**Author:** ![weixionglichina](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/weixionglichina/32/10650_2.png) [@weixionglichina](https://forum.inductiveautomation.com/u/weixionglichina)\
**Post date:** [June 5, 2023, 3:53am UTC](https://forum.inductiveautomation.com/t/import-and-use-poi-java/20794/9 "2023-06-05T03:53:05Z")

</div>

Do you mean replacing old JARs with the same names but conents are latest?  
It's going to be covered once we reinstall...

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [June 5, 2023, 1:42pm UTC](https://forum.inductiveautomation.com/t/import-and-use-poi-java/20794/10 "2023-06-05T13:42:36Z")

</div>

You can delete the old JARs and just put the new ones in. The names of the JAR files in the `lib/core/*` folders aren't important.

> [@weixionglichina](#):
>
> It's going to be covered once we reinstall...

Yes, that's why the names aren't important. They get deleted and replaced on upgrade, so you'd have to replace them every time you upgraded.

Unfortunately the easiest solution here is to change your module to use the same version POI that Ignition does.
