Intro

Any chart that references a range with data markers will have its data source updated when ExcelTemplate imports rows of data. Make changes to a template without making any changes to code.

Open the template, right click on the chart and choose the "Select Data..." option.  This will open a window with details about the charts data range.  Though the range for the chart is only one row (=ChartSheet!$A$26:$B$26), will update the data formula when the data is bound to the data markers in the cells.   

A populated version of the chart is available for download below.

Code

public void GenerateReport()
        {
            // Create an instance of ExcelTemplate
            ExcelTemplate xlt = new ExcelTemplate();
 
            // Open the template workbook
            string templatePath = @"..\..\ExcelTemplateFiles\ChartDemoTemplate.xlsx";
            xlt.Open(templatePath);
 
            DataTable dt = GetCSVData(@"..\..\ExcelData\ChartDemoData.csv");
 
            // Pass the DataTable to ExcelTemplate
            xlt.BindData(dt, "SalesData", xlt.CreateDataBindingProperties());
            // Call the process() method to populate the
            // template with the data source values and save
            // the populated document
            xlt.Process();
            xlt.Save(@"..\..\ExcelOutputFiles\ChartDemo_output.xlsx");
 
        }
 
        /// <summary>
        /// Reads the CSV and returns datatable
        /// </summary>
        /// <returns>DataTable of top 5 products</returns>
        System.Data.DataTable GetCSVData(string csvFileName)
        {
            DataTable dt;
            using (GenericParserAdapter parser = new GenericParserAdapter(csvFileName))
            {
                parser.ColumnDelimiter = ',';
                parser.FirstRowHasHeader = true;
 
                dt = parser.GetDataTable();
            }
            return dt;
        }
    }
 
 

Downloads