Class POIFindReplaceAdapter

java.lang.Object
org.imixs.workflow.poi.POIFindReplaceAdapter
All Implemented Interfaces:
org.imixs.workflow.Adapter, org.imixs.workflow.SignalAdapter

public class POIFindReplaceAdapter extends Object implements org.imixs.workflow.SignalAdapter
This POIFindReplaceAdapter can be used to find and replace text fragements in a MS Word (docx) or MS Excel (xlsx) document.

The adapter can be configured by the event workflow result:

 
      <poi-update name=
        "filename">PLA Membership Agreement-<itemvalue>numsequencenumber</itemvalue>.docx</poi-update>
        <poi-update name="findreplace">
               <find>[company.name]</find>
               <replace><itemvalue>company.name</itemvalue></replace>
        </poi-update>
        <poi-update name="findreplace">
               <find>[company.country]</find>
               <replace><itemvalue>company.country</itemvalue></replace>
        </poi-update>
        <poi-update name="findreplace">
               <find>[contract.startdate]</find>
               <replace><itemvalue format=
        "EEE, MMM d, yyyy">contract.start</itemvalue></replace>
       </poi-update>
   
 
For Excel you can replace cell content:
 
 <poi-update name="findreplace">
       <find>F4</find>
       <replace><itemvalue>numsequencenumber</itemvalue></replace>
       <type>text</type>
   </poi-update>
   
 

Another option for Excel sheets is a typed item value. In this case the tag 'itemname' defindes the item and 'type' defines the type which will be set into the excel sheet

 
 <poi-update name="findreplace">
       <find>F4</find>
       <itemname>invoice.date</itemname>
   </poi-update>
   
Version:
1.0
Author:
rsoika
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    evalXSSFSheet(org.apache.poi.xssf.usermodel.XSSFWorkbook doc, org.apache.poi.xssf.usermodel.XSSFSheet sheet, String cell)
    Evaluates a given list of cells in a given XSWorkbook
    org.imixs.workflow.ItemCollection
    execute(org.imixs.workflow.ItemCollection document, org.imixs.workflow.ItemCollection event)
    This method computes the findreplace configuration and updates an attachments form type .docx
    static org.apache.poi.xssf.usermodel.XSSFCell
    getCellByRef(org.apache.poi.xssf.usermodel.XSSFWorkbook doc, org.apache.poi.xssf.usermodel.XSSFSheet sheet, String cellReference)
    Returns a Cell by name or an optional absolute cell postion
    void
    processPOIUpdate(org.imixs.workflow.ItemCollection workitem, org.imixs.workflow.ItemCollection event, String targetName)
    This helper method processes all poi-update instructions for a given file attachment (.docx | .xlsx)
    void
    replaceXSSFSheetItemValue(org.apache.poi.xssf.usermodel.XSSFWorkbook doc, org.apache.poi.xssf.usermodel.XSSFSheet sheet, String find, Object itemValue)
    Helper method replaces a given cell of a XSSFSheet with a typed item value
    void
    replaceXWPFDocument(org.apache.poi.xwpf.usermodel.XWPFDocument doc, String find, String replace)
    Helper method replaces a given text in a XWPFDocument
    void
    updateFileData(org.imixs.workflow.FileData fileData, org.imixs.workflow.ItemCollection document, List<String> replaceDevList, String eval)
    This helper method updates the content of a given FileData object with a replaceDevList
    void
    updateXSSFWorkbook(org.apache.poi.xssf.usermodel.XSSFWorkbook workbook, org.imixs.workflow.ItemCollection workitem, List<String> replaceDevList)
    This method updates the XSSFWorkbook document.
    void
    updateXWPFDocument(org.apache.poi.xwpf.usermodel.XWPFDocument document, org.imixs.workflow.ItemCollection workitem, List<String> replaceDevList)
    This method updates the XWPFDocument document.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • POIFindReplaceAdapter

      public POIFindReplaceAdapter()
  • Method Details

    • execute

      public org.imixs.workflow.ItemCollection execute(org.imixs.workflow.ItemCollection document, org.imixs.workflow.ItemCollection event) throws org.imixs.workflow.exceptions.AdapterException, org.imixs.workflow.exceptions.PluginException
      This method computes the findreplace configuration and updates an attachments form type .docx
      Specified by:
      execute in interface org.imixs.workflow.Adapter
      Throws:
      org.imixs.workflow.exceptions.PluginException
      org.imixs.workflow.exceptions.AdapterException
    • processPOIUpdate

      public void processPOIUpdate(org.imixs.workflow.ItemCollection workitem, org.imixs.workflow.ItemCollection event, String targetName) throws org.imixs.workflow.exceptions.PluginException
      This helper method processes all poi-update instructions for a given file attachment (.docx | .xlsx)
      Parameters:
      workitem -
      event -
      targetName -
      Throws:
      org.imixs.workflow.exceptions.PluginException
    • updateFileData

      public void updateFileData(org.imixs.workflow.FileData fileData, org.imixs.workflow.ItemCollection document, List<String> replaceDevList, String eval) throws IOException, org.imixs.workflow.exceptions.PluginException
      This helper method updates the content of a given FileData object with a replaceDevList

      The method verifies if the content of the file need to be loaded from the snapshot

      Parameters:
      fileData - - the fileData object containing the text or calc file
      replaceDevList - - list of text markers or cell positions to be replaced
      eval - - optional list of cell positions to be evaluated after update (this is for XSSFWorkbooks only)
      Throws:
      IOException
      org.imixs.workflow.exceptions.PluginException
    • updateXWPFDocument

      public void updateXWPFDocument(org.apache.poi.xwpf.usermodel.XWPFDocument document, org.imixs.workflow.ItemCollection workitem, List<String> replaceDevList) throws org.imixs.workflow.exceptions.PluginException
      This method updates the XWPFDocument document. The method can be overwritten by subclasses to add additional logic
      Parameters:
      doc -
      workitem -
      replaceDevList -
      Throws:
      org.imixs.workflow.exceptions.PluginException
    • updateXSSFWorkbook

      public void updateXSSFWorkbook(org.apache.poi.xssf.usermodel.XSSFWorkbook workbook, org.imixs.workflow.ItemCollection workitem, List<String> replaceDevList) throws org.imixs.workflow.exceptions.PluginException
      This method updates the XSSFWorkbook document. The method can be overwritten by subclasses to add additional logic
      Parameters:
      workbook -
      workitem -
      replaceDevList -
      Throws:
      org.imixs.workflow.exceptions.PluginException
    • replaceXSSFSheetItemValue

      public void replaceXSSFSheetItemValue(org.apache.poi.xssf.usermodel.XSSFWorkbook doc, org.apache.poi.xssf.usermodel.XSSFSheet sheet, String find, Object itemValue) throws org.imixs.workflow.exceptions.PluginException
      Helper method replaces a given cell of a XSSFSheet with a typed item value
      Throws:
      org.imixs.workflow.exceptions.PluginException
    • getCellByRef

      public static org.apache.poi.xssf.usermodel.XSSFCell getCellByRef(org.apache.poi.xssf.usermodel.XSSFWorkbook doc, org.apache.poi.xssf.usermodel.XSSFSheet sheet, String cellReference)
      Returns a Cell by name or an optional absolute cell postion

      Examples for refs are 'A1', 'AB3', 'MyCell' where 'MyCell' is a named cell.

    • evalXSSFSheet

      public void evalXSSFSheet(org.apache.poi.xssf.usermodel.XSSFWorkbook doc, org.apache.poi.xssf.usermodel.XSSFSheet sheet, String cell) throws org.imixs.workflow.exceptions.PluginException
      Evaluates a given list of cells in a given XSWorkbook
      Parameters:
      doc -
      sheet -
      cell -
      Throws:
      org.imixs.workflow.exceptions.PluginException
    • replaceXWPFDocument

      public void replaceXWPFDocument(org.apache.poi.xwpf.usermodel.XWPFDocument doc, String find, String replace)
      Helper method replaces a given text in a XWPFDocument