HTML 표 (Not Gridview)가 있으며 올바른 머리글과 행이 없습니다. 대신 구조 및 데이터를 사용자 정의했습니다. 이 테이블을 Excel로 내보내려고합니다. ASP.NET을 어떻게 사용합니까? ASP.NET을 사용하여 HTML 표를 Excel로 내보내기
레이블은 고정 텍스트이고 정수 값은 데이터베이스에서 가져옵니다. 따라서 테이블 구조는 정수/십진 값만 변경됩니다.
HTML 표 (Not Gridview)가 있으며 올바른 머리글과 행이 없습니다. 대신 구조 및 데이터를 사용자 정의했습니다. 이 테이블을 Excel로 내보내려고합니다. ASP.NET을 어떻게 사용합니까? ASP.NET을 사용하여 HTML 표를 Excel로 내보내기
레이블은 고정 텍스트이고 정수 값은 데이터베이스에서 가져옵니다. 따라서 테이블 구조는 정수/십진 값만 변경됩니다.
ASP.NET을 사용하여 HTML 표 (Not Gridview) 사용자 지정 구조 및 데이터를 Excel로 내보내려는 경우
는<table id="tbl" runat="server" >
다음 코드
Response.ContentType = "application/x-msexcel";
Response.AddHeader("Content-Disposition", "attachment;
filename=ExcelFile.xls");
Response.ContentEncoding = Encoding.UTF8;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
tbl.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
runat="server"
이 속성
가 ID
를 제공하는 다음 접근을 시도하고 추가
아주 좋습니다. Excel 파일에 이미지를 넣거나 셀 등에 색상을 채우려면 어떻게해야합니까? 내가 말하고자하는 것은 내보낼 때 Excel 파일의 형식을 지정하는 것입니다. – Haminteu
확인하기 http://stackoverflow.com/questions/7172282/give-background-color-to-excel-sheet-in-asp-net/9858841#9858841 및 http://stackoverflow.com/questions/9410401/adding -custom-header-to-the-excel-file/9653194 # 9653194 –
내 SP 사이트의 비주얼 웹 파트에서 내보내기 기능을 사용하려고합니다. '응답'은 나에게 오류를주고있다. – SearchForKnowledge
데이터가 데이터베이스 인 경우 (XML 파일에 저장할 수 없다면) 최근에 내가 게시 한 유사한 질문을 살펴보십시오.
자동화 된 방법은 없습니다. 그러나 동일한 코드를 사용하여 테이블을 생성하고 대신 출력에 쓸 수 있습니다. 간단한 CSV 파일로 작성하면 다운로드 한 파일을 클릭하기 만하면 Excel에로드 할 수 있습니다.
올바른 헤더를 설정하면 웹 페이지 대신 다운로드로 콘텐츠를 처리하도록 브라우저에 지시 할 수 있습니다. this article에 코드를 게시했습니다.
설명없이 답변을 투표하는 사람은 누구입니까? –
나는 아래쪽 투표 "bozo"가 아니지만, OP가 명시 적으로 GridView에 없다고 말했기 때문에 대답이 아래로 내려갔습니다. - 또는 OP가이 데이터의 출처를 암시합니다. 우리가 알고있는 한, OP가 통제 할 수없는 사이트의 HTML 테이블입니다. – Didaxis
@ErOx : 예, 찍었습니다. :) OP가 그가 ASP를 사용하고 있다고 말했다.NET, 나는 그가 자신의 사이트에서 이것을한다고 가정 할 것이다. 그러나 나는이 문제에 모호함이 있다는 데 동의한다. –
당신은 코드 아래 사용할 수 있습니다
Response.ContentType = "application/force-download";
Response.AddHeader("content-disposition", "attachment; filename=Print.xls");
Response.Write("<html xmlns:x=\"urn:schemas-microsoft-com:office:excel\">");
Response.Write("<head>");
Response.Write("<META http-equiv=\"Content-Type\" content=\"text/html; charset=utf- 8\">");
Response.Write("<!--[if gte mso 9]><xml>");
Response.Write("<x:ExcelWorkbook>");
Response.Write("<x:ExcelWorksheets>");
Response.Write("<x:ExcelWorksheet>");
Response.Write("<x:Name>Report Data</x:Name>");
Response.Write("<x:WorksheetOptions>");
Response.Write("<x:Print>");
Response.Write("<x:ValidPrinterInfo/>");
Response.Write("</x:Print>");
Response.Write("</x:WorksheetOptions>");
Response.Write("</x:ExcelWorksheet>");
Response.Write("</x:ExcelWorksheets>");
Response.Write("</x:ExcelWorkbook>");
Response.Write("</xml>");
Response.Write("<![endif]--> ");
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
tbl.RenderControl(hw);
Response.Write(tw.ToString());
Response.Write("</head>");
Response.flush();
또한 당신이 보낸 출력이 UI와 완전히 동일하게 표시하려면 인라인 CSS를 제공하는 advicable입니다. 표에 CSS 클래스를 적용하면 내 보낸 Excel에 표시되지 않습니다. dtReport 테이블을 (즉, 데이터를 내보낼 수) MSO 형식을 사용하여
if (dtReports != null && dtReports.Rows.Count > 0 && !string.IsNullOrEmpty(formName))
{
string filename = formName.ToUpper() + ParsConstant.XLS_EXTENSION;
StringWriter tw = new StringWriter();
using (HtmlTextWriter hw = new HtmlTextWriter(tw))
{
//Binding Datatable to DataGrid.
DataGrid dgGrid = new DataGrid();
dgGrid.DataSource = dtReports;
dgGrid.DataBind();
//Some Properties for the Header
dgGrid.HeaderStyle.Font.Bold = true;
dgGrid.HeaderStyle.Font.Size = 13;
//Get the HTML for the control.
dgGrid.RenderControl(hw);
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + "");
//Response.Write("<style> TD { mso-number-format:\\@; } </style>");
Response.Write(tw.ToString());
Response.End();
}
}
피하는되지 않습니다 헤더를 우리는 다음과 같은 LOC를 사용하여 Excel로 테이블을 내보낼 수 있으며, 우리가 포맷 할 수 있습니다 포함되어있는 경우
반드시 인라인 CSS를 넣을 필요는 없습니다. 머리에 스타일 클래스를 추가하면 정상적으로 작동합니다. – Kronass
선행 제로하지만, 작업을 수행하는 것이 바람직하지 않은 문자열로 텍스트를 변환합니다.
이것은 반복 가능한 프로세스 여야합니까? 또는 귀하의 웹 페이지에서 한 번 잘라 붙이기가 가능합니까? – Randy
테이블에 대한 데이터는 어디에서 비롯 되었습니까? – Didaxis
다른 사람과 달리, 나는 아래쪽 투표를 설명 할 것입니다. 이것은 어떤 값에 대한 실제 답변을 도출 할만큼 충분한 세부 사항이없는 가난한 질문입니다. 자세한 내용을 제공하거나이 질문이 닫힐 것으로 의심됩니다. – Didaxis