Here I have created sample,that full fill your requirement.
HTML
<div>
<asp:Repeater ID="rptMonthlyReport" runat="server" OnItemDataBound="rptMonthlyReport_ItemDataBound">
<HeaderTemplate>
<header>
<asp:Label ID="lblOne" runat="server">Monthly Performance Report</asp:Label>
</header>
<table id="tblMonthlyReport" border="1">
<tr>
<td>
Agency
</td>
<td>
July
</td>
<td>
August
</td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Literal ID="ltAgency" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Agency")%>'></asp:Literal>
</td>
<td>
<asp:TextBox ID="txtJuly" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"July")%>'></asp:TextBox>
</td>
<td>
<asp:TextBox ID="txtAug" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Aug")%>'></asp:TextBox>
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr>
<td>
<asp:Literal ID="ltAgency" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Agency")%>'></asp:Literal>
</td>
<td>
<asp:TextBox ID="txtJuly" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"July")%>'></asp:TextBox>
</td>
<td>
<asp:TextBox ID="txtAug" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Aug")%>'></asp:TextBox>
</td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
<tr class="ColHeading">
<td>
<b>TOTALS</b>
</td>
<td align="right" id="totJul" runat="server" nowrap="true">
Test
</td>
<td align="right" id="totAug" runat="server" nowrap="true">
Test
</td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
<asp:Button ID="btnExport" runat="server" Text="Export" OnClick="ExportToExcel2">
</asp:Button>
</div>
C#
protected double totalJulQty = 0;
protected double totalAugQty = 0;
protected void Page_Load(object sender, EventArgs e)
{
rptMonthlyReport.DataSource = GetTable();
rptMonthlyReport.DataBind();
}
static DataTable GetTable()
{
// Here we create a DataTable with four columns.
DataTable table = new DataTable();
table.Columns.Add("Agency", typeof(string));
table.Columns.Add("July", typeof(string));
table.Columns.Add("Aug", typeof(string));
// Here we add five DataRows.
table.Rows.Add("Bend", "25", "125");
table.Rows.Add("Salem", "50", "150");
table.Rows.Add("Eugene", "75", "175");
table.Rows.Add("Corbet", "100", "200");
table.Rows.Add("Silverton", "125", "225");
return table;
}
protected void rptMonthlyReport_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item) // For items
{
TextBox txtJul = e.Item.FindControl("txtJuly") as TextBox;
totalJulQty = totalJulQty + Convert.ToDouble(txtJul.Text);
TextBox txtAug = e.Item.FindControl("txtAug") as TextBox;
totalAugQty = totalAugQty + Convert.ToDouble(txtAug.Text);
}
else if (e.Item.ItemType == ListItemType.AlternatingItem)
{
TextBox txtJul = e.Item.FindControl("txtJuly") as TextBox;
totalJulQty = totalJulQty + Convert.ToDouble(txtJul.Text);
TextBox txtAug = e.Item.FindControl("txtAug") as TextBox;
totalAugQty = totalAugQty + Convert.ToDouble(txtAug.Text);
}
else if (e.Item.ItemType == ListItemType.Footer) // For footer
{
SetValueTotalCell((HtmlTableCell)e.Item.FindControl("totJul"), totalJulQty);
SetValueTotalCell((HtmlTableCell)e.Item.FindControl("totAug"), totalAugQty);
}
}
private void SetValueTotalCell(HtmlTableCell e, double tempDouble)
{
if (e != null)
{
e.InnerText = String.Format("{0:0.00}", tempDouble); //tempDouble.ToString(); //String.Format("{0,-10:C}", totalDivertedQty);
}
}
protected void ExportToExcel2(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=RepeaterExport.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
using (StringWriter sw = new StringWriter())
{
HtmlTextWriter hw = new HtmlTextWriter(sw);
foreach (RepeaterItem item in rptMonthlyReport.Items)
{
List<Control> controls = new List<Control>();
foreach (Control control in item.Controls)
{
controls.Add(control);
}
int i = 0;
foreach (Control control in controls)
{
switch (control.GetType().Name)
{
case "TextBox":
item.Controls.AddAt(i + 1, new Literal { Text = (control as TextBox).Text });
item.Controls.RemoveAt(i);
break;
}
i++;
}
}
rptMonthlyReport.RenderControl(hw);
Response.Write(sw.ToString());
Response.Flush();
Response.End();
}
}
Screenshot
1) Repeater

2) Excel
