There are two ways to insert rows of data using ExcelWriter: ExcelTemplate's ExcelTemplate.BindData method and ExcelApplication's Worksheet.ImportData method.
ExcelTemplate.BindData
When data is imported into a template file that contains data markers with ExcelTemplate.BindData, ExcelWriter inserts a brand new row for each row of data in the data source. Content in the cells below the data markers will be pushed down as the new rows are added. Styles and formatting in the data marker row will be copied for each new row. Formulas that reference the data marker row will be updated to reflect the newly inserted rows.
For example, we start with a simple template file that contains data markers:
Content below the data markers
In this example, there is content below the data marker row (a Grand Total row and a blue footer row). This will be pushed down as new rows are inserted.
Before:
After:
- There are two formulas
- B4 contains a SUM formula that references a data marker cell. The lower boundary will expand to include new rows.
- C3 contains a formula that references a data marker cell. The row values will be updated for each new row.
Before:
After:
- The italic and red font formatting will be applied for each row of data that is imported
Before:
After:
Worksheet.ImportData
How does ExcelWriter create rows when inserting data?
What happens to things in my template, when I insert data?
Import Data (application) vs. Bind Data (template)