2012-09-24 2 views
1

vb.net에서 두 개의 HTML 표를 문자열 변수로 만들고 런타임시 aspx 페이지의 innerhtml에 문자열 텍스트를 추가합니다. 이에 대한 코드 (이 샘플 코드) 다음과 같습니다 :하나의 엑셀 시트로 여러 개의 HTML 표 출력

Dim oBuilder as stringbuilder 
With oBuilder 
.Append("<html xmlns:x=""urn:schemas-microsoft-com:office:excel"">") 
       .Append("<head>") 
       .Append("<meta http-equiv=""Content-Type"" content=""text/html;charset=windows-1252"">") 
       .Append("<!--[if gte mso 9]>") 
       .Append("<xml>") 
       .Append("<x:ExcelWorkbook>") 
       .Append("<x:ExcelWorksheets>") 
       .Append("<x:ExcelWorksheet>") 
       .Append("<x:Name>Summary</x:Name>") 
       .Append("<div>") 
       .Append("<table style="" border:solid 1px black; "">") 
       .Append("<tr>") 
       .Append("<td>Column 1</td>") 
       .Append("</tr>") 
       .Append("</table>") 
       .Append("</div>") 
       .Append("<div>") 
       .Append("<table style="" border:solid 1px black; "">") 
       .Append("<tr>") 
       .Append("<td>Column 1 - Table 2</td>") 
       .Append("</tr>") 
       .Append("</table>") 
       .Append("</div>") 
End With 
LogDetails.InnerHtml = oBuilder.ToString 

영문 페이지는 실제로 잘 테이블 (다른 아래 하나)를 표시합니다. 다음 줄을 추가하고 XML과 함께 사무실 기능을 사용하여 워크 시트의 이름을 지정하려고 시도했습니다. 내가 만들고 두 개의 워크 시트 이름을 할 수 있었다 : 페이지를 renderring

 .Append("<html xmlns:x=""urn:schemas-microsoft-com:office:excel"">") 
     .Append("<head>") 
     .Append("<meta http-equiv=""Content-Type"" content=""text/html;charset=windows-1252"">") 
     .Append("<!--[if gte mso 9]>") 
     .Append("<xml>") 
     .Append("<x:ExcelWorkbook>") 
     .Append("<x:ExcelWorksheets>") 
     .Append("<x:ExcelWorksheet>") 
     .Append("<x:Name>Summary</x:Name>") 
     .Append("</x:ExcelWorksheet>") 
     .Append("<x:ExcelWorksheet>") 
     .Append("<x:Name>Summary no 2</x:Name>") 
     .Append("</x:ExcelWorksheet>") 
     .Append("</xml>") 
     .Append("<![endif]-->") 
     .Append("</head>") 
     .Append("<body>") 
     .Append(oBuilder) 
     .Append("</body>") 
     .Append("</html>") 

포스트, 나는 엑셀 테이블을 내보낼 버튼을 클릭합니다. 내 버튼 클릭 이벤트는 다음을 수행합니다.

Context.Response.ContentType = "application/ms-excel" 
Context.Response.AddHeader("content-disposition", "attachment; filename=" + Session("ExcelFile").Trim + "") 
Context.Response.AddHeader("Content-Transfer-Encoding", "binary") 
Context.Response.Write(LogDetails.InnerHtml) 

이 버튼은 저에게 저장/열기 대화 상자를 제공합니다. 저장된 엑셀 시트를 열면 다른 테이블 아래에 두 개의 테이블이 있다는 것을 알았습니다 ... 테이블이 별도의 워크 시트에 있어야합니다. 수년간의 작업이 있기 때문에 전체 코드를 다시 만들고 싶지 않습니다. "요약"워크 시트와 두 번째 HTML 테이블의 첫 번째 HTML 테이블을 "요약 2"워크 시트에 넣을 수있는 방법이 있습니까? 전체 코드를 재 작업하려면?

내가 지금 3 일 이상이를 연구하고대로 어떤 도움이 크게 감사합니다

...

감사합니다, 나는 supose 써니

답변

0

(내 연구 기술에 대해 많은 말을하지 않습니다) 첫 번째 표를 첫 번째 스프레드 시트에 렌더링 한 다음 활성 워크 시트를 변경하고 두 번째 표를 렌더링해야합니다.

+0

실제로 테이블을 워크 시트에 렌더링하지는 않습니다 ... 단순히 내부 HTML을 Excel 시트로 출력하는 것입니다 ... 코드의 context.response 섹션은 ​​그렇게합니다 ... 따라서, 내 예제에서 코드를 사용하여 워크 시트가 실제로 사용되는 것으로 가정합니다 (처음 믿는 코드를 사용함) ... 테이블을 원할 워크 시트를 지정할 수있는 샘플 코드가 있어야 도움이 될 것입니다. 하지만, XML 부분에 테이블 값을 만들고 HTML 본문이 아닌 몇 가지 링크를 발견했습니다. – heetseekel2

+0

첫 번째 테이블을 밀어 넣은 후 코드에 두 번째 워크 시트를 추가하려고 시도 했습니까? 태그 안의 워크 시트 내부에 원하는 코드가 있습니까? – Bardo

+1

많은 페이지에서 HTML 테이블을 출력 할 워크 시트를 지정할 수 없다고 말합니다. 따라서 전체 코드를 다시 작성하고 HTML 대신 셀을 사용하여 태그 내에 테이블을 다시 만들어야합니다 태그 (, ) ... 다른 사람이이 문제에 직면 한 경우 링크를 클릭하십시오. http://forums.asp.net/t/1214938.aspx – heetseekel2

관련 문제