Excel Upload, Parse, Show in Grid -> With Extras

As promised, here is a function library and a HowTo on how to work with excel files.

Go to that thread, and install and promote that library, then come back here :wink:

Set up an app like so:


This is a panel, two grids inside, a file box, and a button.


TransView


Set up a TransView to hold the FileName.



Set up an even on Window OnLoad to add a row to the TransView.
That json is {"FileName": null}


File Box →


Grid Data Views →




I set up a couple, as I’m parsing two worksheets.


Upload & Parse Button Event →


Type → Control
Hook → On Click
Target → Choose your button



Add a file-transfer-kinetic widget.
Special Folder → User Data
Server Path → .
Transfer Type → upload
ErpFileBoxID → your file box id



Add a kinetic-function widget.
Library → Excel Operations
Service Operation → ReadExcelFileReturnDataSet





Method Parameters →
Field inServerFolder → 0 ( 0 is User Folder)
Field inFileName → TransView.FileName
Field hasHeader → true (or false if it doesn’t lol)



Response Parameters →
Parameter Name → Sheet1, Sheet2 (Whatever your names are)
View Name → DVGrid1, DVGrid2 (The grid dataviews)
Parse from Response Path → ds


Here is the sample file I used → 2SheetSample.xlsx (10.4 KB)

2griddemo

Let me know if you have any questions.

10 Likes

Obligatory link to the OG thread with CSV.

1 Like

Thank you for your extensive work poking and prodding the software! I am attempting to replicate this now, and I am finding that I can’t enable your library with this error.


## System Information ##
==================

AppServer Connection: MYSERVER
Form Name: Epicor Functions Maintenance
Customization Name: 
Menu ID: BPMN1450
Software Version: 2025.2.0

============

Server Side Exception

There is at least one compilation error.
DataSetToExcel.cs(36,26): error CS0012: The type 'EnumValue<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(41,26): error CS0012: The type 'EnumValue<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(51,26): error CS0012: The type 'EnumValue<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(68,74): error CS0012: The type 'OpenXmlPackage' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(68,28): error CS0012: The type 'OpenXmlPackage' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(68,28): error CS0012: The type 'ISupportedRelationship<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(68,28): error CS1674: 'SpreadsheetDocument': type used in a using statement must be implicitly convertible to 'System.IDisposable'.
DataSetToExcel.cs(70,57): error CS0012: The type 'OpenXmlPackage' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(72,75): error CS0012: The type 'OpenXmlPartRootElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(72,75): error CS1061: 'Workbook' does not contain a definition for 'AppendChild' and no accessible extension method 'AppendChild' accepting a first argument of type 'Workbook' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(79,72): error CS0012: The type 'OpenXmlPart' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(79,72): error CS1061: 'WorkbookPart' does not contain a definition for 'AddNewPart' and no accessible extension method 'AddNewPart' accepting a first argument of type 'WorkbookPart' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(81,69): error CS1503: Argument 1: cannot convert from 'DocumentFormat.OpenXml.Spreadsheet.SheetData' to 'string'
DataSetToExcel.cs(81,59): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(81,59): error CS0012: The type 'OpenXmlElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(89,47): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(89,47): error CS1061: 'Row' does not contain a definition for 'AppendChild' and no accessible extension method 'AppendChild' accepting a first argument of type 'Row' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(91,43): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(91,43): error CS1061: 'SheetData' does not contain a definition for 'AppendChild' and no accessible extension method 'AppendChild' accepting a first argument of type 'SheetData' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(100,44): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(100,44): error CS1061: 'Row' does not contain a definition for 'AppendChild' and no accessible extension method 'AppendChild' accepting a first argument of type 'Row' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(102,43): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(102,43): error CS1061: 'SheetData' does not contain a definition for 'AppendChild' and no accessible extension method 'AppendChild' accepting a first argument of type 'SheetData' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(105,57): error CS0012: The type 'OpenXmlPart' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(105,57): error CS1061: 'WorkbookPart' does not contain a definition for 'GetIdOfPart' and no accessible extension method 'GetIdOfPart' accepting a first argument of type 'WorkbookPart' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(106,36): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(108,33): error CS0012: The type 'StringValue' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(109,33): error CS0012: The type 'UInt32Value' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(110,33): error CS0012: The type 'StringValue' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(106,29): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(114,47): error CS0012: The type 'OpenXmlPartRootElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(114,47): error CS7036: There is no argument given that corresponds to the required parameter 'openXmlPart' of 'Workbook.Save(WorkbookPart)'
ExcelToDataSet.cs(33,22): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(33,22): error CS1061: 'Sheets' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'Sheets' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(41,21): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(41,37): error CS0012: The type 'OpenXmlLeafTextElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(44,47): error CS0012: The type 'OpenXmlLeafTextElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(44,47): error CS1061: 'CellValue' does not contain a definition for 'Text' and no accessible extension method 'Text' accepting a first argument of type 'CellValue' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(46,26): error CS0012: The type 'EnumValue<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(46,51): error CS0012: The type 'EnumValue<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(48,48): error CS0012: The type 'EnumValue<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(53,63): error CS0012: The type 'OpenXmlPartRootElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(54,50): error CS0012: The type 'OpenXmlPartRootElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(54,36): error CS0012: The type 'OpenXmlPartRootElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(100,64): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(100,64): error CS1061: 'Sheets' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'Sheets' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(102,21): error CS0012: The type 'OpenXmlLeafElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(104,75): error CS0012: The type 'OpenXmlPart' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(104,97): error CS0012: The type 'StringValue' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(104,75): error CS1061: 'WorkbookPart' does not contain a definition for 'GetPartById' and no accessible extension method 'GetPartById' accepting a first argument of type 'WorkbookPart' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(104,47): error CS0012: The type 'OpenXmlPart' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(106,63): error CS0012: The type 'OpenXmlPartRootElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(106,63): error CS1061: 'Worksheet' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'Worksheet' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(108,55): error CS0012: The type 'OpenXmlPart' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(112,44): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(112,44): error CS1061: 'SheetData' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'SheetData' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(124,53): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(124,53): error CS1061: 'Row' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'Row' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(135,55): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(135,55): error CS1061: 'Row' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'Row' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(145,44): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(145,44): error CS1061: 'Row' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'Row' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(167,60): error CS0012: The type 'OpenXmlPackage' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(167,40): error CS0012: The type 'OpenSettings' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(167,28): error CS0012: The type 'OpenXmlPackage' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(167,28): error CS0012: The type 'ISupportedRelationship<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(167,28): error CS1674: 'SpreadsheetDocument': type used in a using statement must be implicitly convertible to 'System.IDisposable'.

Exception caught in: Epicor.ServiceModel

## Error Detail ##
============

##!Correlation ID:##!  45e36ca6-bde3-478e-8476-583576177e99
##!Description:##!  There is at least one compilation error.
##!Details:##!  
DataSetToExcel.cs(36,26): error CS0012: The type 'EnumValue<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(41,26): error CS0012: The type 'EnumValue<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(51,26): error CS0012: The type 'EnumValue<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(68,74): error CS0012: The type 'OpenXmlPackage' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(68,28): error CS0012: The type 'OpenXmlPackage' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(68,28): error CS0012: The type 'ISupportedRelationship<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(68,28): error CS1674: 'SpreadsheetDocument': type used in a using statement must be implicitly convertible to 'System.IDisposable'.
DataSetToExcel.cs(70,57): error CS0012: The type 'OpenXmlPackage' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(72,75): error CS0012: The type 'OpenXmlPartRootElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(72,75): error CS1061: 'Workbook' does not contain a definition for 'AppendChild' and no accessible extension method 'AppendChild' accepting a first argument of type 'Workbook' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(79,72): error CS0012: The type 'OpenXmlPart' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(79,72): error CS1061: 'WorkbookPart' does not contain a definition for 'AddNewPart' and no accessible extension method 'AddNewPart' accepting a first argument of type 'WorkbookPart' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(81,69): error CS1503: Argument 1: cannot convert from 'DocumentFormat.OpenXml.Spreadsheet.SheetData' to 'string'
DataSetToExcel.cs(81,59): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(81,59): error CS0012: The type 'OpenXmlElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(89,47): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(89,47): error CS1061: 'Row' does not contain a definition for 'AppendChild' and no accessible extension method 'AppendChild' accepting a first argument of type 'Row' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(91,43): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(91,43): error CS1061: 'SheetData' does not contain a definition for 'AppendChild' and no accessible extension method 'AppendChild' accepting a first argument of type 'SheetData' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(100,44): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(100,44): error CS1061: 'Row' does not contain a definition for 'AppendChild' and no accessible extension method 'AppendChild' accepting a first argument of type 'Row' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(102,43): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(102,43): error CS1061: 'SheetData' does not contain a definition for 'AppendChild' and no accessible extension method 'AppendChild' accepting a first argument of type 'SheetData' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(105,57): error CS0012: The type 'OpenXmlPart' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(105,57): error CS1061: 'WorkbookPart' does not contain a definition for 'GetIdOfPart' and no accessible extension method 'GetIdOfPart' accepting a first argument of type 'WorkbookPart' could be found (are you missing a using directive or an assembly reference?)
DataSetToExcel.cs(106,36): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(108,33): error CS0012: The type 'StringValue' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(109,33): error CS0012: The type 'UInt32Value' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(110,33): error CS0012: The type 'StringValue' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(106,29): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(114,47): error CS0012: The type 'OpenXmlPartRootElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
DataSetToExcel.cs(114,47): error CS7036: There is no argument given that corresponds to the required parameter 'openXmlPart' of 'Workbook.Save(WorkbookPart)'
ExcelToDataSet.cs(33,22): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(33,22): error CS1061: 'Sheets' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'Sheets' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(41,21): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(41,37): error CS0012: The type 'OpenXmlLeafTextElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(44,47): error CS0012: The type 'OpenXmlLeafTextElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(44,47): error CS1061: 'CellValue' does not contain a definition for 'Text' and no accessible extension method 'Text' accepting a first argument of type 'CellValue' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(46,26): error CS0012: The type 'EnumValue<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(46,51): error CS0012: The type 'EnumValue<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(48,48): error CS0012: The type 'EnumValue<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(53,63): error CS0012: The type 'OpenXmlPartRootElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(54,50): error CS0012: The type 'OpenXmlPartRootElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(54,36): error CS0012: The type 'OpenXmlPartRootElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(100,64): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(100,64): error CS1061: 'Sheets' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'Sheets' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(102,21): error CS0012: The type 'OpenXmlLeafElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(104,75): error CS0012: The type 'OpenXmlPart' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(104,97): error CS0012: The type 'StringValue' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(104,75): error CS1061: 'WorkbookPart' does not contain a definition for 'GetPartById' and no accessible extension method 'GetPartById' accepting a first argument of type 'WorkbookPart' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(104,47): error CS0012: The type 'OpenXmlPart' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(106,63): error CS0012: The type 'OpenXmlPartRootElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(106,63): error CS1061: 'Worksheet' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'Worksheet' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(108,55): error CS0012: The type 'OpenXmlPart' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(112,44): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(112,44): error CS1061: 'SheetData' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'SheetData' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(124,53): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(124,53): error CS1061: 'Row' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'Row' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(135,55): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(135,55): error CS1061: 'Row' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'Row' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(145,44): error CS0012: The type 'OpenXmlCompositeElement' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(145,44): error CS1061: 'Row' does not contain a definition for 'Elements' and no accessible extension method 'Elements' accepting a first argument of type 'Row' could be found (are you missing a using directive or an assembly reference?)
ExcelToDataSet.cs(167,60): error CS0012: The type 'OpenXmlPackage' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(167,40): error CS0012: The type 'OpenSettings' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(167,28): error CS0012: The type 'OpenXmlPackage' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(167,28): error CS0012: The type 'ISupportedRelationship<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'DocumentFormat.OpenXml.Framework, Version=3.3.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17'.
ExcelToDataSet.cs(167,28): error CS1674: 'SpreadsheetDocument': type used in a using statement must be implicitly convertible to 'System.IDisposable'.
##!Program:##!  Epicor.Customization.dll
##!Method:##!  MoveNext
##!Line Number:##!  79
##!Column Number:##!  17

## Client Stack Trace ##
==================
   at Epicor.ServiceModel.Channels.ImplBase.CallWithCommunicationFailureRetry(String methodName, ProxyValuesIn valuesIn, ProxyValuesOut valuesOut, RestRpcValueSerializer serializer)
   at Epicor.ServiceModel.Channels.ImplBase.CallWithMultistepBpmHandling(String methodName, ProxyValuesIn valuesIn, ProxyValuesOut valuesOut, Boolean useSparseCopy)
   at Epicor.ServiceModel.Channels.ImplBase.Call(String methodName, ProxyValuesIn valuesIn, ProxyValuesOut valuesOut, Boolean useSparseCopy)
   at Ice.Proxy.Lib.EfxLibraryDesignerImpl.ApplyChangesWithDiagnostics(EfxLibraryDataSet libraryTableset, IEnumerable`1& diagnostics)
   at Ice.UI.EfxLibraryMaintenance.Services.LibraryService.<>c__DisplayClass2_0.<ApplyChangesWithDiagnostics>b__0(EfxLibraryDesignerImpl svc)
   at Ice.Blaq.Client.EfxLibraryDesigner.LibraryInfoService.CallSvc(Action`1 func)
   at Ice.UI.EfxLibraryMaintenance.Services.LibraryService.ApplyChangesWithDiagnostics(EfxLibraryDataSet& input, IEnumerable`1& diagnostics)
   at Ice.UI.EfxLibraryMaintenance.MainTransaction.ApplyChangesWithDiagnostics(String lastSelectedLibrary, IEnumerable`1& diagnostics)
   at Ice.UI.EfxLibraryMaintenance.MainTransaction.adapterUpdate()
   at Ice.Lib.Framework.EpiMultiViewTransaction.Update(IEnumerable`1 dataSets)

Are these added in the references?

They were already in the library. I disabled the first two functions in the library, as that is where the compile errors come from. This let me deploy it.

I added using for DocumentFormat.OpenXml.Framework. That allowed me to use the library. I have the form setup as directed. However, I noticed that I can’t enter a value into the File Selector box. It is disabled. To enable it, I can set the keyfield check box to true. But I dont think this is the right answer, as the Excel file never gets parse into the DV.

Once you create the file picker box, how do you make it enabled so you can click the brose icon? Strangely this worked in a previous attempt where I used the file picker to pull in a text file into a comments field. I am wondering if I need a different folder. We are on cloud not on-prem. Does that change anything in this setup?

Thank you!

Did you add epBinding? I think all fields will be disabled unless they are bound.

1 Like

I got a little further down this road. Now we are at an error when I try to click the button:

Access to the path ‘C:\epi\storage\epicordata[SITEID]\Users\NATHAN’ is denied.

This again leads me to think due to my cloud nature, I need to use a different directory. Hmmm… In my last post where I got the add text file working with my own function, I used the CompanyData folder and the server path: Uploads{TransView.File}. I think I need to do the same with this approach, but I am not sure I got all the locations that I need to update. I think I have to update the inserverfolder parameter with a different integer.

Edit: With the change above, I get a slightly different error.

Access to the path ‘C:\epi\storage\epicordata[SITEID]\Companies\VTAERO’ is denied.

hmmm… :thinking:

1 Like

show your setup

Yes, the filename field is bound to TransView.FileName, just like the instructions.









I originally set up with TransView.FileName. Right now it is setup as just TransView.File to match other forms I have done. This shouldn’t matter, just noting it here in case.

EDIT:I also tried both 0 and 1 for the server folder when I tried to switch to the company folder. Thats why it is still 1 in the screenshot.

Did I miss anything in the setup?

This one always gets me, and stopped me a couple times in this setup: Function Error Issue - Kinetic ERP - Epicor User Help Forum

1 Like

I don’t think so, what version is this?

BTW, for everyone else. In my code, I assumed the first row of the file had data in every row. If it doesn’t, probably screw up. I never went back to that oversight.

I’m testing in Pilot 2025.2.7.

What does this mean? I don’t get it.

One of the key differences semes to be that I need to set the binding on my file picker to TransView.Part, and click Key Field. Otherwise the field is disabled and I cant enter any data. I can use any dataview and field name, but if I dont use KeyField, then I cant do anything with the file picker. Is this a clue to you?

Does your Transview have a row?

Because no row, means it will not work.

I mean I did AddRow like you said, but you’re right, I can’t see any row in TransView from the debugger.

1 Like

Thinking that the issue is that TransView never gets a row, I tried a few more attempts. First I tried to set the TransView.File field using a row-update instead of row-add. I also scrapped the TransView and tried with a new custom view called myTempDV. It seems like I can force a row into those DVs by using row-update. But this still doesnt unlock the filepicker control. The only way I can unlock that control is to set the field to key field. I assume that is what is causing these issues.

1 Like

Did you add your field to the TransView as an additional column?

Like this? Yes.