2014-09-02 74 views
0

目標:使用aspx響應輸出將.xlsx文件從服務器傳輸到客戶端。如何傳輸xlsx文件作爲aspx響應輸出?

方法試驗: 我對所有這些方法使用相同的響應標頭。

  1. Response.TransmitFile(fileName);
  2. Response.Output.Write(System.Text.Encoding.Default.GetString(File.ReadAllBytes(path))); //Tried with different encodings.
  3. Response.Output.Write(File.ReadAllText(path, System.Text.Encoding.Default)); //Tried with different encodings.

結果: 方法1的工作(由於一些基礎設施相關的限制,我們不能使用這種方法)。但方法2和3不起作用。它在客戶端導致損壞的.xlsx文件。 儘管.xlsx是xml文件和二進制格式的集合,但我試圖在服務器和客戶端中使用記事本++打開文件。我注意到他們有點不同。

問:

  1. 爲什麼它被髮送到客戶端後,該文件的內容得到改變?
  2. 是否有任何其他方式使用aspx響應輸出從服務器發送xlsx文件到客戶端?

回答

0

請嘗試以下方法:

​​
+0

您的回覆謝謝@wdosanjos但我不能使用,因爲我們的設計約束Response.BinaryWrite()。我必須使用Response.Output。有什麼辦法可以解決這個問題,只需將Excel寫入Response.Output? – 2014-09-02 21:03:12

+0

你可以使用'Response.OutputStream'嗎?由於Response.Output是一個TextWriter,你將無法通過它寫入二進制數據。 – wdosanjos 2014-09-03 03:51:21

+0

爲了支持我們的遺留系統,我們需要使用HtmlTextWriter的Response.Output來發送xlsx文件。我想知道是否有可能。 – 2014-09-03 06:41:26