Excel Tools

Overview

Provides several smart services and functions for handling data in Excel and CSV formats.

Key Features & Functionality

Smart Services included are:

  • Import CSV to Database
  • Import Excel to Database
  • Merge Excel Documents
  • Load CSV to Database
  • Convert HTML to CSV
  • Convert Excel to CSV
  • Encrypt Excel with Password

Functions included are:

  • Read Excel File Paged
  • Read Excel Cell by Name
  • Read Excel Cell by Number
  • Read Excel By Headers
  • Query Appian Logs
  • Export Datasubset to Base64
  • Validate Document Headers
Anonymous
  • Im using the Import CSV to Database smart service, on passing the csv file which has empty values in few cells Im getting the error 'Error executing SQL'. Does the smart service not support csv files with null values for a few cells?

  • v2.8.2 Release Notes
    • Fixing bugs associated with library dependencies
  • I am trying to use the Excel to CSV converter but get an error: Convert Excel To CSVAn error occurred in executing an Activity Class.

    I specify 1 for Row number ot read from and SHete number. I specify the columns I want to read and for the Excel Document I do a todocument of a DocumentID. In the output I specify a process variable of type Document in which to store AC!CSVDocument.

    Any help would be appreciated! It looks like a similar error to the one below (both talk about InputBuilder issues), albeit for a different utility in the Plugin-in.

    2025-05-20 00:42:05,363 [ThreadPoolTaskExecutor-182065] ERROR com.appiancorp.process.workpoller.WorkItemListener - The following exception occurred while attempting to complete work item [[WorkId: 737, EngineId: execution02, Request: UnattendedJavaActivityRequest:536871033 as roderick.ross@iam-app.co by roderick.ross@iam-app.co, ProcessId: 536889035, ProcessModelId: 1110, Response: null]] - Exception: 
    javax.resource.spi.work.WorkCompletedException: java.lang.NoSuchMethodError: 'org.apache.commons.io.input.BoundedInputStream$Builder org.apache.commons.io.input.BoundedInputStream.builder()'
    	at org.springframework.jca.work.SimpleTaskWorkManager$DelegatingWorkAdapter.run(SimpleTaskWorkManager.java:244)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    	at java.base/java.lang.Thread.run(Thread.java:840)
  • When I try to use the Excel to CSV Smart Service I get "An error occurred in executing an Activity Class.".

    I specifiy the Excel document input using a todocument of the docId that I am uploading. 

    I specify an integer for the number of columns I am reading.

    I specify 1 for the Row Number to Read from and 1 for the Sheet Number.

    In the output I save the CSV output as a process variables of Type Document.

    My std-Out.log trace includes the following.

    Any help would be appreciated.

    2025-05-20 00:42:05,363 [ThreadPoolTaskExecutor-182065] ERROR com.appiancorp.process.workpoller.WorkItemListener - The following exception occurred while attempting to complete work item [[WorkId: 737, EngineId: execution02, Request: UnattendedJavaActivityRequest:536871033 as roderick.ross@iam-app.co by roderick.ross@iam-app.co, ProcessId: 536889035, ProcessModelId: 1110, Response: null]] - Exception: 
    javax.resource.spi.work.WorkCompletedException: java.lang.NoSuchMethodError: 'org.apache.commons.io.input.BoundedInputStream$Builder org.apache.commons.io.input.BoundedInputStream.builder()'
    	at org.springframework.jca.work.SimpleTaskWorkManager$DelegatingWorkAdapter.run(SimpleTaskWorkManager.java:244)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    	at java.base/java.lang.Thread.run(Thread.java:840)
    Caused by: java.lang.NoSuchMethodError: 'org.apache.commons.io.input.BoundedInputStream$Builder org.apache.commons.io.input.BoundedInputStream.builder()'
    	at org.apache.poi.util.IOUtils.peekFirstNBytes(IOUtils.java:153)
    	at org.apache.poi.poifs.filesystem.FileMagic.valueOf(FileMagic.java:209)
    	at org.apache.poi.openxml4j.opc.internal.ZipHelper.verifyZipHeader(ZipHelper.java:147)
    	at org.apache.poi.openxml4j.opc.internal.ZipHelper.openZipFile(ZipHelper.java:219)
    	at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:274)
    	at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:393)
    	at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:364)
    	at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:223)
    	at com.github.pjfanning.xlsx.impl.StreamingWorkbookReader.init(StreamingWorkbookReader.java:141)
    	at com.github.pjfanning.xlsx.impl.StreamingWorkbookReader.init(StreamingWorkbookReader.java:107)
    	at com.github.pjfanning.xlsx.StreamingReader$Builder.open(StreamingReader.java:552)
    	at com.appiancorp.ps.exceltools.util.ExcelHelperUtils.convertExcelToCSV(ExcelHelperUtils.java:737)
    	at com.appiancorp.ps.exceltools.smartservice.ConvertExcelToCSV.run(ConvertExcelToCSV.java:57)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:129)
    	at com.appiancorp.plugins.PluginUsageLogger.runWithPluginInformation(PluginUsageLogger.java:54)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:129)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:123)
    	at com.appiancorp.common.ContextClassLoaderSwitcher.runInContext(ContextClassLoaderSwitcher.java:30)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor.execute(DefaultActivityExecutor.java:123)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:110)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequestResponseCreator.getJavaActivityResultResponse(UnattendedJavaActivityRequestResponseCreator.java:23)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.getJavaActivityResultResponse(UnattendedJavaActivityRequest.java:89)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute0(UnattendedJavaActivityRequest.java:72)
    	at com.appiancorp.common.persistence.data.AppianDataUserContextProvider.executeWithConsistentDataReads(AppianDataUserContextProvider.java:143)
    	at com.appiancorp.process.engine.ProcessContinuationRequest.executeOuter(ProcessContinuationRequest.java:68)
    	at com.appiancorp.process.engine.ActivityRequest.executeOuter(ActivityRequest.java:41)
    	at com.appiancorp.process.engine.ContinuationRequest.execute(ContinuationRequest.java:136)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:125)
    	at com.appiancorp.process.workpoller.UnattendedRequestHandlerBean.onMessage(UnattendedRequestHandlerBean.java:36)
    	at com.appiancorp.process.workpoller.WorkItem.run(WorkItem.java:110)
    	at org.springframework.jca.work.SimpleTaskWorkManager$DelegatingWorkAdapter.run(SimpleTaskWorkManager.java:241)
    	... 3 more
    Exception in thread "ThreadPoolTaskExecutor-182065" java.lang.NoSuchMethodError: 'org.apache.commons.io.input.BoundedInputStream$Builder org.apache.commons.io.input.BoundedInputStream.builder()'
    	at org.apache.poi.util.IOUtils.peekFirstNBytes(IOUtils.java:153)
    	at org.apache.poi.poifs.filesystem.FileMagic.valueOf(FileMagic.java:209)
    	at org.apache.poi.openxml4j.opc.internal.ZipHelper.verifyZipHeader(ZipHelper.java:147)
    	at org.apache.poi.openxml4j.opc.internal.ZipHelper.openZipFile(ZipHelper.java:219)
    	at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:274)
    	at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:393)
    	at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:364)
    	at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:223)
    	at com.github.pjfanning.xlsx.impl.StreamingWorkbookReader.init(StreamingWorkbookReader.java:141)
    	at com.github.pjfanning.xlsx.impl.StreamingWorkbookReader.init(StreamingWorkbookReader.java:107)
    	at com.github.pjfanning.xlsx.StreamingReader$Builder.open(StreamingReader.java:552)
    	at com.appiancorp.ps.exceltools.util.ExcelHelperUtils.convertExcelToCSV(ExcelHelperUtils.java:737)
    	at com.appiancorp.ps.exceltools.smartservice.ConvertExcelToCSV.run(ConvertExcelToCSV.java:57)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:129)
    	at com.appiancorp.plugins.PluginUsageLogger.runWithPluginInformation(PluginUsageLogger.java:54)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:129)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:123)
    	at com.appiancorp.common.ContextClassLoaderSwitcher.runInContext(ContextClassLoaderSwitcher.java:30)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor.execute(DefaultActivityExecutor.java:123)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:110)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequestResponseCreator.getJavaActivityResultResponse(UnattendedJavaActivityRequestResponseCreator.java:23)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.getJavaActivityResultResponse(UnattendedJavaActivityRequest.java:89)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute0(UnattendedJavaActivityRequest.java:72)
    	at com.appiancorp.common.persistence.data.AppianDataUserContextProvider.executeWithConsistentDataReads(AppianDataUserContextProvider.java:143)
    	at com.appiancorp.process.engine.ProcessContinuationRequest.executeOuter(ProcessContinuationRequest.java:68)
    	at com.appiancorp.process.engine.ActivityRequest.executeOuter(ActivityRequest.java:41)
    	at com.appiancorp.process.engine.ContinuationRequest.execute(ContinuationRequest.java:136)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:125)
    	at com.appiancorp.process.workpoller.UnattendedRequestHandlerBean.onMessage(UnattendedRequestHandlerBean.java:36)
    	at com.appiancorp.process.workpoller.WorkItem.run(WorkItem.java:110)
    	at org.springframework.jca.work.SimpleTaskWorkManager$DelegatingWorkAdapter.run(SimpleTaskWorkManager.java:241)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    	at java.base/java.lang.Thread.run(Thread.java:840)
    2025-05-20 00:45:18,074 [Timer-6] INFO  com.appiancorp.cache.DatabaseAuxiliaryCache - Removing expired entries from db cache: uiStateLarge-auxiliary

  • Hi, ,

    As other users have commented, since I updated to the latest version, I started getting this error when running the "readexcelsheetpaging" rule.



    This is a very important rule for a client project. Please correct it as soon as possible.

    Best regards!

  • Hi  ,

    After updating this plugin i have the following error...Can you Advise me how to solve?

  • Hi  ,

    After updating this plugin to latest version, it is throwing following error:

    On reverting to previous version, it is working fine.

  • Could you please help us on limitation of Import Excel to Database plugin in terms of Max col and Max row

  • v2.8.1 Release Notes
    • Upgraded log4j-core and poi-ooxml to fix status logger error and vulnerability fix.
  • Hello,

    Was readexcelsheet function replaced by readexcelsheetpaged in the last version of the plugin?

    Thanks in advance.