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
Parents
  • 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

Comment
  • 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

Children
No Data