none
如何在Asp.net程式中匯出有加密的Excel檔案!! RRS feed

  • 問題

  •        

    Code Snippet
    Response.Clear();  
              Response.Buffer=   true;
              Response.Charset= "GB2312 ";
              Response.AppendHeader( "Content-Disposition ", "attachment;filename=FileName.xls ");
              Response.ContentEncoding=System.Text.Encoding.GetEncoding( "BIG-5 "); 
              Response.ContentType   =  "application/ms-excel "; 
              this.EnableViewState   =  false;
              System.Globalization.CultureInfo   myCItrad   =  
                   new System.Globalization.CultureInfo( "ZH-TW ",true);
              System.IO.StringWriter   oStringWriter   =  
                   new System.IO.StringWriter(myCItrad);
              System.Web.UI.HtmlTextWriter   oHtmlTextWriter   =  
                   new   System.Web.UI.HtmlTextWriter(oStringWriter);
              DataGrid1.RenderControl(oHtmlTextWriter);
              Response.Write(oStringWriter.ToString());
              Response.End();  

     

     

    以上程式是將GridView匯出Excel的部份....但想讓檔案加密,開啟檔案時必輸入密碼才可觀看,找尋大家討論的主題都沒找到好的答案,在麻煩大大幫忙解答,謝謝!!

    2008年5月2日 上午 02:41

解答

  • 可以考慮使用一支中介的 Windows 程式或 Windows Service,把加密過的 Excel 檔案用物件模型讀出來,轉成 DataTable 再丟給 ASP.NET 程式來做,這樣也可以,直接在 ASP.NET 上使用 Excel 物件模型的話問題會比較多。

     

    2008年5月2日 上午 03:29
    版主

所有回覆

  • 你用  是怎樣?光看就令人奇檬子不 Young 了。

     

    Excel 若帶有密碼,只能透過物件模型去開,OLE DB 不支援:

    http://www.connectionstrings.com/?carrier=excel

     

    但如果要在 ASP.NET 中使用物件模型,則要考量更多:

    http://support.microsoft.com/kb/257757/zh-tw

     

    2008年5月2日 上午 02:57
    版主
  • 謝謝小朱大大的回答!!

     

    觀看大大提供的文件,感覺要瞭解的東西還蠻複雜的,

     

    所以要使Excel匯出時加上一道密碼...就目前的ASP.NET的程式來說可行性就很低囉..

    2008年5月2日 上午 03:23
  • 可以考慮使用一支中介的 Windows 程式或 Windows Service,把加密過的 Excel 檔案用物件模型讀出來,轉成 DataTable 再丟給 ASP.NET 程式來做,這樣也可以,直接在 ASP.NET 上使用 Excel 物件模型的話問題會比較多。

     

    2008年5月2日 上午 03:29
    版主