1
A
回答
1
我創建了一個StringBuilder,並使用以下代碼將內容轉儲到Response對象(「csv」是StringBuilder變量)。
Response.ContentType = @"application/x-msdownload";
Response.AppendHeader("content-disposition", "attachment; filename=" + FILE_NAME);
Response.Write(csv.ToString());
Response.Flush();
Response.End();
0
我已經幾次使用的RKLib導出庫有很大的影響,這種使用內存流,可以給出任何數據表,它會作爲一個CSV下載導出:
http://www.codeproject.com/KB/aspnet/ExportClassLibrary.aspx
1
使用context.Response.OutputStream。
Here's一個例子。
2
實現一個IHttpHandler。
我用類似於ProcessResponse爲outputing之前已經在一個數據庫表構建一個CSV以下的東西......
public void ProcessRequest(HttpContext context)
{
HttpResponse response = context.Response;
HttpRequest request = context.Request;
//Get data to output here...
//Turn off Caching and enforce a content type that will prompt to download/save.
response.AddHeader("Connection", "close");
response.AddHeader("Cache-Control", "private");
response.ContentType = "application/octect-stream";
//Give the browser a hint at the name of the file.
response.AddHeader("content-disposition", string.Format("attachment; filename={0}", _filename));
//Output the CSV here...
foreach(BatchDTO.BatchRecordsRow row in dtoBatch.BatchRecords)
response.Output.WriteLine(row.Data);
response.Flush();
response.Close();
}
有許多,使生成CSV容易庫,你應該能夠將它傳遞給Response.OutputStream讓它寫到那裏,而不是文件流。
相關問題
- 1. 重定向bash:來自變量的內容,而不是來自文件
- 2. 如何利用內存流而不是文件流
- 3. 來自數據流的流文件內容
- 4. 緩存到ASP.NET中的文件(而不是內存)
- 5. 閱讀目錄內容而不是zip文件內容
- 6. 自變量的內容,而不是一個文件需要
- 7. 內存流vs文件流靜態內容下載
- 8. 閱讀流Excel文件,這是不保存內容到硬盤
- 9. 來自url的PHP grep文件內容
- 10. 來自文件內容的QImage
- 11. 如何訪問其內容位於內存而不是磁盤上的文件?
- 12. Asp.net內存問題,而文件上傳
- 13. 來自asp.net頁面內容的PDF
- 14. 顯示[內容]而不是實際內容的郵件
- 15. 獲得來自標籤的文本,而不內容
- 16. 使用流文件內容
- 17. 交流文件內容
- 18. wp_generate_attachment_metadata輸出文件的內容而不是寫入文件
- 19. FileReader/Scanner讀取文件名,而不是.txt文件的內容
- 20. 保存內容與文件放內容
- 21. 緩存字符串中的在線文件內容而不是本地文件
- 22. 如何閱讀堆中大文件的內容而不存在內存錯誤
- 23. QLPreviewController顯示文件名稱而不是文件內容來自服務器的文件
- 24. 內存中的XML文件而不是磁盤上的文件
- 25. 不是來自webpack的內容來自/ foo
- 26. 傳遞「文件內容」而不是「文件位置」
- 27. 來自UIWebView的iOS緩存內容
- 28. 代碼刪除文件的內容而不是替換文本
- 29. 內存流和文件流的區別
- 30. 將5個json文件內容保存到緩存:選擇SharedPrefs而不是內部文件
我發現如果你有很多數據你也應該添加response.BufferOutput = false; ,以便立即彈出文件下載框,而不是等待所有行在服務器上緩衝。 – 2009-10-30 03:39:01