prasannakumarmp Ответов: 1

При экспорте ретранслятора в excel с помощью ASP.NET C# получение содержимого HTML-тега


При экспорте ретранслятора в excel с помощью asp.net c# получение содержимого HTML-тега пожалуйста, помогите

Что я уже пробовал:

вот мой поддержки.aspx-файл код.

<asp:UpdatePanel runat="server" ID="updpnl">
	<ContentTemplate>
		<asp:Panel runat="server" ID="Panelmapdetail" Height="280px" ScrollBars="Auto">
			<table class="table table-hover table-nomargin table-colored-header">
				<thead>
					<tr>
						<th>UniqID</th>
						<th>Customer Name</th>
						<th>Product1</th>
						<th>Product2</th>
						<th>Product3</th>
						<th></th>
					</tr>
				</thead>
				<tbody>
					<asp:Repeater runat="server" ID="rptrStudMarksDetails">
						<ItemTemplate>
							<tr>
								<td style="display:none"><asp:Label ID="lbCustomerProduct" runat="server" Text='<%#Eval("CustomerProduct") %>'></asp:Label></td>
								<td><%#Eval("UniqID") %></td>
								<td><%#Eval("Customer Name") %></td>
								<td><%#Eval("Product1") %></td>
								<td><%#Eval("Product2") %></td>
								<td><%#Eval("Product2") %></td>
							</tr>
						</ItemTemplate>
					</asp:Repeater>
				</tbody>
			</table>
		</asp:Panel>
	</ContentTemplate>
</asp:UpdatePanel>
<asp:LinkButton runat="server" ID="lbnExport" OnClick="lbnExport_Click">Export to Excel</asp:LinkButton>


here is my customer.aspx.cs code.

protected void lbnExport_Click(object sender, EventArgs e)
        {
string FileName12 = "123";
            Response.ClearContent();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment;filename=" + FileName12 + ".xls");
            Response.Charset = "";
            Response.ContentType = "application/vnd.ms-excel";
            StringWriter sw = new StringWriter();
            HtmlTextWriter hw = new HtmlTextWriter(sw);
            rptrStudMarksDetails.RenderControl(hw);
            Response.Write(sw.ToString());
            Response.Flush();
            Response.End();
}

F-ES Sitecore

Вы ничего не экспортируете в Excel, вы просто возвращаете html и просите клиента использовать Excel, чтобы попытаться интерпретировать этот html как рабочий лист. Если он не может, тогда вы будете видеть странные вещи. Google для того, как создавать файлы Excel из asp.net, есть несколько бесплатных библиотек, которые могут сделать это для вас.

prasannakumarmp

Сэр, "F-ES Sitecore", я динамически связываю ретранслятор

F-ES Sitecore

Я имею в виду, что вы не создаете документ Excel.

prasannakumarmp

Пожалуйста, обратитесь к коду:

Ответ.AddHeader("content-disposition", "attachment;filename=" + FileName12 + ".xls");

F-ES Sitecore

Это говорит клиентскому браузеру, что если клиент решит сохранить файл, используйте это имя файла по умолчанию. Однако вы просто сохраняете html с расширением xls, поскольку именно html вы отправляете в ответе.

prasannakumarmp

Пожалуйста, пришлите мне пример кода.

F-ES Sitecore

Вместо этого используйте что-то вроде EPPlus

https://www.ryadel.com/en/asp-net-generate-excel-files-programmatically-epplus-guide-tutorial-mvc-core/

prasannakumarmp

Спасибо за ваше предложение(ссылка).

1 Ответов

Рейтинг:
0

kp564

Привет,
Измените приведенный ниже код и проверьте его,

rptrStudMarksDetails.RenderControl(hw);
Response.Write("<table>");
Response.Write(sw.ToString());
Response.Write("</table>");


Вам просто нужно добавить тег до и после рендеринга ваших данных в html.
Тогда и только тогда вы сможете получить желаемый результат.