2012-08-01 4 views
1

나는 누군가가 대답 할 수 있기를 바랍니다. .NET 3.5 Winforms 및 SpreadSheetGear 2010 구성 요소를 사용하고 있으며 Excel 통합 문서를 HTML로 변환하는 무료 또는 저렴한 방법이 있는지 알아야합니까? 좋은 XSLT 변환 또는 저비용 또는 오픈 소스 구성 요소가 있습니까? 프로그래밍 방식으로 OpenXMLWorkbook에 Excel 파일을 저장할 수 있지만 구성 요소가 html로 저장할 수 없습니다. 어떤 도움을 주시면 감사하겠습니다. 감사.프로그램 스프레드 시트를 HTML로 프로그래밍

답변

0

ASP.Net을 사용하고 Excel to DataGrid Samples이 나타내는 코드를 따르십시오. 프로젝트에는 항상 System.Web에 대한 참조를 포함 할 수 있습니다.

그러나 ASP.Net이 없어도 .Net 클라이언트 프로필을 고수한다고해도 DataTable에서 HTML 표를 생성하는 것은 간단합니다. 데이터를 html로 인코딩하려면 AntiXss Library (download)을 사용하십시오. 그런 다음 StringBuilder으로 HTML을 구성하십시오. 여기에 확장 방법을 사용하는 HTML <table> 모든 DataTable를 변환하는 데 사용할 수있다 :

using AntiXss = Microsoft.Security.Application; 

... 

public static String ToHTML(this DataTable dt) 
{ 
    StringBuilder html = new StringBuilder("<table><thead><tr>"); 
    foreach (DataColumn col in dt.Columns) 
    { 
     html.AppendFormat("<td>{0}</td>", 
      AntiXss.Encoder.HtmlEncode(col.ColumnName)); 
    } 
    html.Append("</tr></thead><tbody>"); 
    foreach (DataRow row in dt.Rows) 
    { 
     html.Append("<tr>"); 
     foreach (var data in row.ItemArray) 
     { 
      html.AppendFormat("<td>{0}</td>", 
       AntiXss.Encoder.HtmlEncode(data.ToString())); 
     } 
     html.Append("</tr>"); 
    } 
    html.Append("</tbody></table>"); 
    return html.ToString(); 
} 

그리고 전체 통합 문서의 HTML를 얻기 위해, 또 다른 확장 방법 : 도움을하지만 우리에 대한

public static List<String> ToHTML(this IWorkBook wb) 
{ 
    List<String> tables = new List<String>(); 
    DataSet ds = wb.GetDataSet(GetDataFlags.FormattedText); 
    foreach (DataTable dt in ds.Tables) 
    { 
     tables.Add(dt.ToHTML()); 
    } 
    return tables; 
} 
+0

감사합니다 시스템은 winforms 전용 시스템입니다. –

+0

@GregWilliams - 'System.Web'을 필요로하지 않는 솔루션으로 답변을 업데이트했습니다. – gilly3

관련 문제