2013-09-01 101 views
0

我想創建excel文件,我的網站託管在IIS 7服務器中。我不想爲此使用Microsoft.Office.Interop或第三方許可證版本工具。如何從asp.net中的服務器下載excel文件

我有一個場景創建excel文件,其表現如下:

  1. 的第一件事情,當用戶點擊 「導出Excel」 按鈕,然後是三個XSL文件,如:

    test1.xlsx,TEST2 .xlsx,test3.xlsx應該被創建並且一個一個地壓縮到一個zip文件夾(測試) ,這取決於邏輯,所有三個xlsx將包含它們的 數據。

  2. 這個zip文件夾的第二件事應該在Clint系統或PC上下載。

請爲我提供更好的解決方案或免費版本的Excel工具對服務器 創建XSL。

+1

你嘗試過什麼嗎? –

+0

是的,只有微軟Office Interop API,但我不想用com object.pls讓我知道如果你對我的場景有任何想法.. – user2717258

+0

你想創建一個excel文件而不使用excel?祝你好運... – DoctorMick

回答

0

在我的ASP.Net應用程序中,我使用XSLT樣式表。

Response.Clear(); 
Response.AddHeader("Content-Disposition", "inline; filename=filename.xls"); 
         Response.ContentType = "application/vnd.ms-excel"; 

         System.Xml.XmlDocument xslDoc = new System.Xml.XmlDocument(); 
         xslDoc.Load(System.Web.HttpContext.Current.Server.MapPath("~\\App_Data\\my_xslt_template.xslt")); 

         System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument(); 
         xmlDoc.LoadXml(ValuesDS.GetXml()); 

         System.Xml.Xsl.XslTransform xslt = new System.Xml.Xsl.XslTransform(); 
         xslt.Load(xslDoc); 

         using (System.IO.StringWriter writer = new System.IO.StringWriter()) 
         { 
          xslt.Transform(xmlDoc, null, writer, null); 
          Response.Write(writer.ToString()); 
         } 
         Response.End(); 
+0

請指導我根據我的情況..感謝 – user2717258

+0

如果你想打包ZIP文件中的這些文件,你可以使用DotNetZip庫。這是免費的。在xslt.Transform之後,您需要使用'使用(StreamWriter sw = new StreamWriter(path)) sw.Write(writer.ToString());'不是Response.Write –