Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
public void GenerateReport()

        {

                    {
            // Generate the new workbook with ExcelTemplate

                        // Create an instance of SoftArtisans ExcelTemplate

                        ExcelTemplate xlt = new ExcelTemplate();\
            
 
            // Open the template workbook

                        string templatePath = @"..\..\Templates\ArrayDataSourceTemplate.xlsx";

                        xlt.Open(templatePath);\
            
 
 
            // Create arrays/IEnumerables and bind them to the template

                          // data markers. The template data markers bound to each array

                          // are shown below in comments.

            \
                       
 
            DataBindingProperties basicBindingProperties = xlt.CreateDataBindingProperties();\
            
 
            // %%=$SimpleArray

            string\[\            string[] onedim = { "SoftArtisans", "OfficeWriter", "ExcelTemplate" };

                        xlt.BindColumnData(onedim, "SimpleArray", basicBindingProperties);\
            
 
            // %%=$ArrayList

                        ArrayList arrayList = new ArrayList(onedim);

                        xlt.BindColumnData(arrayList, "ArrayList", basicBindingProperties);\
            
 
 
            // By default, ExcelTemplate expects an array orientation of

                          // \[rows\]\[cols\].   You can pass a transposed array by setting

                          // the Transpose argument to true.   Notice how twoDimNormal

                          // and twoDimTranspose differ.   This gives you flexibility

                          // in how you arrange your data source arrays.

            

            string\[,\            
            string[,] twoDimNormal = {{"Nancy", "Davolio", "Sales Manager"},

                                                                        {"Michael", "Suyama", "HR Representative"},

                                                                        {"Adrian", "King", "IS Support"}};\
            
 
            // When binding to two-dimensional arrays, the second parameter

                          // to BindData (dataMarkerName) must be a String\[\] array.

                          // The values in that array correpond to the data marker names:

                          // %%=TwoDimArray.FirstName

                          // %%=TwoDimArray.LastName

                          // %%=TwoDimArray.Position

            

            string\[\            
            string[] names = { "FirstName", "LastName", "Position" };

                        xlt.BindData(twoDimNormal, names, "TwoDimArray", basicBindingProperties);\
            
 
 
            // %%=TwoDimTrans.FirstName

                          // %%=TwoDimTrans.LastName

                          // %%=TwoDimTrans.Position

            

            string\[,\            
            string[,] twoDimTranspose = {{"Nancy", "Michael", "Adrian"},

                                                                        {"Davolio", "Suyama", "King"},

                                                                        {"Sales Manager", "HR Representative", "IS Support"}};

                        DataBindingProperties bindTransposed = xlt.CreateDataBindingProperties();

                        bindTransposed.Transpose = true;

                        xlt.BindData(twoDimTranspose, names, "TwoDimTrans", bindTransposed);\
            
 
 
            // When binding to an IDictionary collection, the "Key" is

                          // the Data Marker Name.

                          //

                          // The following entries bind to the data marker names:

                          // %%=HashTable.FirstName

                          // %%=HashTable.LastName

                          // %%=HashTable.Position

            

                        
            IDictionary hashTable = new Hashtable();

                        hashTable.Add("FirstName", "Nancy");

                        hashTable.Add("LastName", "Davolio");

                        hashTable.Add("Position", "Sales Manager");\
            
 
            xlt.BindRowData(hashTable, "HashTable", basicBindingProperties);\
            
 
 
            // %%=Address.Street

                        // %%=Address.City

                        // %%=Address.State

           

            string\[\           
            string[] addressvalues = { "3 Brook St.", "Watertown", "MA" };

            string\[\            string[] addressnames = { "Street", "City", "State" };

                        xlt.BindRowData(addressvalues, addressnames, "Address", basicBindingProperties);\
            
 
 
            // Process the template to populate it with the Data Source data

                        xlt.Process();\
            
 
            xlt.Save(@"..\..\Output\ArrayDataSource_output.xlsx");

        }

           }
    }

Downloads

Template and populated output