Mahesh Pattnayak Ответов: 2

Как экспортировать данные из gridview в excel с помощью fomatting строк excel по умолчанию.


я использовал экспорт в excel из gridview.при нажатии на кнопку загрузки лист excel открывается, но с форматированием (например, черные границы).

как удалить черную рамку ..я просто хочу использовать стиль ячейки по умолчанию excel.

Пожалуйста помочь..

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

try {
	string excel_name = "Call-Log-(KBD/SWH)";
	HttpContext.Current.Response.Clear();
	//  HttpContext.Current.Response.ClearContent()
	//  HttpContext.Current.Response.ClearHeaders()
	HttpContext.Current.Response.Buffer = true;
	HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
	HttpContext.Current.Response.Write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">");
	HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + excel_name + "(" + System.DateTime.Now + ").xls");

	HttpContext.Current.Response.Charset = "utf-8";
	HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1250");
	//sets font
	HttpContext.Current.Response.Write("<font style="font-size: 10.0pt; font-family: Calibri">");
	HttpContext.Current.Response.Write("<br><br><br>");
	//sets the table border, cell spacing, border color, font of the text, background, foreground, font height
	HttpContext.Current.Response.Write("");
	//am getting my grid's column headers
	int columnscount = GridView1.Columns.Count;

	for (int j = 0; j <= columnscount - 1; j++) {
		//write in new column
		HttpContext.Current.Response.Write("");
	}

	HttpContext.Current.Response.Write("");
	foreach (DataRow row in table.Rows) {
		//write in new row
		HttpContext.Current.Response.Write("");
		for (int i = 0; i <= table.Columns.Count - 1; i++) {
			HttpContext.Current.Response.Write("");
		}

		HttpContext.Current.Response.Write("");
	}
	HttpContext.Current.Response.Write("<table border="1" cellspacing="0" cellpadding="0"> <tbody><tr><td>");
		//Get column headers  and make it as bold in excel columns
		HttpContext.Current.Response.Write("");
		HttpContext.Current.Response.Write(GridView1.Columns(j).HeaderText.ToString());
		HttpContext.Current.Response.Write("");
		HttpContext.Current.Response.Write("</td></tr><tr><td>");
			HttpContext.Current.Response.Write(row(i).ToString());
			HttpContext.Current.Response.Write("</td></tr></tbody></table>");
	HttpContext.Current.Response.Write("</font>");
	HttpContext.Current.Response.Flush();
	HttpContext.Current.Response.End();

} catch (Exception ex) {
}

2 Ответов

Рейтинг:
2

AnvilRanger

То, что вы делаете, - это не экспорт в Excel. Вы экспортируете в HTML с расширением xls.

Я бы начал с использования компонента, который может помочь работать с форматом OpenXML для офисных документов.

EPPlus, EPPlus-создание расширенных электронных таблиц Excel на сервере-Главная страница[^]
Или
Open XML SDK, Добро пожаловать в Open XML SDK 2.5 для Office[^]
есть два компонента, которые хорошо работают. Я лично использую EPPlus в нескольких своих проектах.


Рейтинг:
1

manu_dhobale

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

Обратиться Экспорт GridView в Excel в ASP.Net с форматированием с использованием C# и VB.Net[^]