Have a check on this and define an index variable e.g. IndexVariable (as you have done in your Code). However we would suggest to give a more meanfully name on it.
this feedback will not tell us, what was done, what is not working.
Looking to your case and XAML there are also some doubts on what is done and what is tried to get achieved.
So, we would recommend, that you just go one step back and have a view on the Requirement / Business Process independend of the implementation.
When we read in an Excel we control with the AddHeader flag if the first row is to use as data column header names or not. In case our data starts some more rows below, we just modify the offset (e.g. A4, to ommit the the first 3 rows).
What is different in your case / Excel and will not fit into the defaults described above?