亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > Asp.net生成Excel文件并下載(更新:解決使用迅雷下載頁面而不是文件的問題)

Asp.net生成Excel文件并下載(更新:解決使用迅雷下載頁面而不是文件的問題)

熱門標簽:云南外呼電銷機器人系統 海外地圖標注門市標 浙江外呼系統怎么安裝 山西防封卡電銷卡套餐 廈門商鋪地圖標注 陜西人工外呼系統哪家好 銅川小型外呼系統運營商 上海楊浦怎么申請申請400電話 地圖標注多個行程
這里采用的是在服務端先生成Excel文件,然后利用文件地址下載的方法。

生成Excel文件的方法,見:【原】.Net創建Excel文件(插入數據、修改格式、生成圖表)的方法

先試用Response.WriteFile的方法:
復制代碼 代碼如下:

FileInfo fi = new FileInfo(excelFile);//excelFile為文件在服務器上的地址
HttpResponse contextResponse = HttpContext.Current.Response;
contextResponse.Clear();
contextResponse.Buffer = true;
contextResponse.Charset = "GB2312"; //設置了類型為中文防止亂碼的出現
contextResponse.AppendHeader("Content-Disposition", String.Format("attachment;filename={0}", excelName)); //定義輸出文件和文件名
contextResponse.AppendHeader("Content-Length", fi.Length.ToString());
contextResponse.ContentEncoding = Encoding.Default;
contextResponse.ContentType = "application/ms-excel";//設置輸出文件類型為excel文件。

contextResponse.WriteFile(fi.FullName);
contextResponse.Flush();
contextResponse.End();

其中第一行的excelFile為Excel文件在服務器上的地址,比如:“C:\Website\Excel\xx.xlsx”。

這種方法也是網上一般提供的方法,但在實際操作中,卻出現了意向不到的問題:

在Chrome下

一切正常,Excel文件直接下載到Chrome的默認下載文件夾中。

image

在Firefox下

由于安裝了FlashGot插件,會先選擇應用的下載工具:

image

在這里顯示是正常的,如果選擇“保存文件”,Excel文件也會被保存到默認文件夾中,但如果試用第三方下載工具,比如迅雷,會出現如下窗口:

image

 

 

注意到網址一欄,會在頁面實際地址后添加ViewState信息,而另存名稱也不是Excel文件本身的名稱,而是頁面的名稱。

點擊確定后,被下載的文件又變成了實際文件(有時會先變成.zip文件,再變為實際文件)

image

在IE7下

image

會先彈出保存對話框,文件正常,同樣因為裝了迅雷的緣故,點保存時,彈出迅雷的下載對話框,和Firefox下不同,網址后面沒有ViewState信息。

image 

點確定,下載的則是頁面文件:

image

如果在迅雷的下載對話框中點取消,則會使用IE的下載,這里的文件又是正確的了:

image

懷疑迅雷是根據下載對話框中的網址重新請求下載,與發起請求的頁面已經無關,而IE又不會把ViewState信息傳到迅雷中,導致下載的文件不是想要的Excel頁面。

之后又嘗試了分段下載的方式,其實也是無效的,因為迅雷根本不理會你提供給它的下載機制,而且這樣在Firefox下調用迅雷時,由于分段下載的Viewstate并不包含Excel文件的完整信息,迅雷下載下的也是殘缺的文件。

最后只能采用最老土的解決方法:Response.Redirect(),轉向實際文件地址。

復制代碼 代碼如下:

FileInfo fi = new FileInfo(excelFile);
HttpResponse contextResponse = HttpContext.Current.Response;
contextResponse.Redirect(string.Format("~/Template/{0}", excelName), false);

這樣在三個瀏覽器下測試都正常了,因為請求的是實際文件的地址,在迅雷中顯示的也是實際文件的地址。下載就不會出現問題。但這樣相當于告知客戶端用戶文件的實際地址,隱私性不佳。但好在這里并不需要太好的隱私性,而且文件會在一定時間之后刪除,所以倒并不是太大的問題了。

上面是第一次考慮的結果,似乎還是有些懶了……

事后考慮,既然每次迅雷實際都是重新請求URL,那么我們就應該給迅雷傳入一個能生成Excel文件的URL。

即,在點擊“生成Excel”按鈕的時候,轉向另一個Export頁面,在這個頁面的Page_Load方法中完成生成Excel文件、下載Excel文件的步驟。
復制代碼 代碼如下:

String fileName = Request.QueryString["FileName"];
String exportName = Request.QueryString["Export"];
if(fileName != null)
{
ExportManger.CreateExcel(fileName);//先在服務器端創建Excel文件。
Response.Redirect(String.Format("{0}?Export={1}",Request.Path.ToString(),fileName));//重定向到本頁面,但Query參數變為Export。
}
else if(exportName != null)
{
ExportManger.ExportExcel(exportName);//下載Excel文件。
}

這里頁面跳轉了兩次,第一次是生成Excel,第二次是下載Excel。

之所以跳轉兩次,是因為迅雷會捕獲最后的URL,如果生成和下載放在一起進行,那么迅雷下載時會重復再生成一遍Excel文件。下載Excel文件的代碼ExportManger.ExportExcel(exportName)就使用了本文開頭介紹的Response.Write方法,也可以用分段下載的方法:
復制代碼 代碼如下:

if(fi.Length > 0)
{
FileStream sr = new FileStream(fi.FullName,System.IO.FileMode.Open,System.IO.FileAccess.Read, System.IO.FileShare.Read);
int size = 1024;//設置每次讀取長度。
for (int i = 0; i fi.Length / size + 1; i++)
{
byte[] buffer = new byte[size];
int length = sr.Read(buffer, 0, size);
contextResponse.OutputStream.Write(buffer, 0, length);
}
sr.Close();
}
else
{
contextResponse.WriteFile(fi.FullName);
}

這里的結果是只生成了一次Excel并在服務器保留,以后每次下載的時候都使用帶"Export"的參數下載相同的文件。那么如果需要文件只是一次性的,每次下載都需要重新生成,則只需要把Export頁面的下載和生成放到一起。然后把開頭的Response.Write方法最后變成:
復制代碼 代碼如下:

contextResponse.Flush();
fi.Delete();
contextResponse.End();

即每次響應清空后把文件先刪除,再結束響應。這樣就解決了利用下載工具出現的下載不能的問題,同時保護了服務器文件地址的隱私,并可以采用分段寫入的方法寫入大文件,而且可以按需要即時刪除生成的文件而不占用服務器空間。

您可能感興趣的文章:
  • ASP.NET MVC3關于生成純靜態后如何不再走路由直接訪問靜態頁面
  • 使用ASP.NET模板生成HTML靜態頁面的五種方案
  • ASP.NET動態生成靜態頁面的實例代碼
  • ASP.NET 生成靜態頁面 實現思路
  • Asp.NET 生成靜態頁面并分頁的代碼
  • Asp.Net生成靜態頁面的實現方法
  • ASP.NET MVC生成靜態頁面的方法
  • asp.net生成Excel并導出下載五種實現方法
  • asp.net(C#) 生成隨機驗證碼的代碼
  • ASP.net(c#)生成條形碼 code39條碼生成方法
  • asp.net C#生成和解析二維碼的實例代碼
  • ASP.NET編程簡單實現生成靜態頁面的方法【附demo源碼下載】

標簽:萊蕪 朔州 孝感 信陽 許昌 西雙版納 自貢 常州

巨人網絡通訊聲明:本文標題《Asp.net生成Excel文件并下載(更新:解決使用迅雷下載頁面而不是文件的問題)》,本文關鍵詞  Asp.net,生成,Excel,文件,并,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Asp.net生成Excel文件并下載(更新:解決使用迅雷下載頁面而不是文件的問題)》相關的同類信息!
  • 本頁收集關于Asp.net生成Excel文件并下載(更新:解決使用迅雷下載頁面而不是文件的問題)的相關信息資訊供網民參考!
  • 推薦文章
    九九九在线视频| 国产一级强片在线观看| 国产视频久久久久| 成人a大片高清在线观看| 国产一级生活片| 深夜做爰性大片中文| 国产精品1024永久免费视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品国产亚一区二区三区| 欧美激情伊人| 99色视频在线观看| 亚洲精品久久久中文字| 欧美大片毛片aaa免费看| 青青久久精品国产免费看| 青青青草视频在线观看| 四虎论坛| 香蕉视频三级| 91麻豆精品国产综合久久久| 国产极品精频在线观看| 国产不卡在线看| 一级女性全黄生活片免费| 国产一区国产二区国产三区| 久久精品免视看国产成人2021| 国产福利免费观看| 欧美激情一区二区三区在线| 国产视频网站在线观看| 午夜在线影院| 99久久精品国产片| 国产综合91天堂亚洲国产| 国产一区二区精品久久91| 成人免费一级毛片在线播放视频| 欧美激情一区二区三区在线| 中文字幕Aⅴ资源网| 国产网站免费在线观看| 色综合久久天天综线观看| 国产91丝袜在线播放0| 精品久久久久久综合网| 欧美a级大片| 久久99这里只有精品国产| 亚洲精品影院一区二区| 黄色短视频网站| 欧美电影免费| 国产伦久视频免费观看视频| 欧美另类videosbestsex视频| 欧美日本二区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 亚洲www美色| 色综合久久天天综合绕观看| 日韩av成人| 九九精品久久久久久久久| 美女免费精品视频在线观看| 精品国产一区二区三区免费| 精品视频免费观看| 久久久久久久网| 精品美女| 日本乱中文字幕系列| 日本乱中文字幕系列| 精品视频免费在线| 精品国产一区二区三区精东影业| 韩国妈妈的朋友在线播放| 午夜激情视频在线播放| 亚欧成人毛片一区二区三区四区| 九九精品在线播放| 欧美激情一区二区三区视频高清| 久久国产影视免费精品| 国产成a人片在线观看视频| 亚洲精品影院一区二区| 国产a网| a级毛片免费全部播放| 精品视频在线观看免费| 999久久久免费精品国产牛牛| 亚欧视频在线| 久久成人亚洲| 国产麻豆精品hdvideoss| 国产成人精品影视| 色综合久久手机在线| 精品视频在线观看一区二区三区| 午夜久久网| 色综合久久久久综合体桃花网| 天堂网中文字幕| 色综合久久天天综合| 欧美另类videosbestsex| 毛片高清| 韩国三级香港三级日本三级la| 九九精品影院| 成人av在线播放| 一级女性大黄生活片免费| 四虎论坛| 可以免费在线看黄的网站| 香蕉视频一级| 97视频免费在线| 日韩中文字幕在线播放| 沈樵在线观看福利| 日韩欧美一及在线播放| 成人a大片高清在线观看| 韩国三级视频网站| 你懂的日韩| 日韩av片免费播放| 国产麻豆精品hdvideoss| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 亚欧成人乱码一区二区| 国产精品1024永久免费视频 | 中文字幕一区二区三区精彩视频 | 高清一级片| 国产极品精频在线观看| 日韩欧美一二三区| 九九免费高清在线观看视频| 精品视频一区二区三区免费| 九九免费精品视频| 成人高清护士在线播放| 国产网站麻豆精品视频| 韩国三级视频在线观看| 九九热精品免费观看| 午夜久久网| 九九久久99| 韩国三级香港三级日本三级la| 九九九在线视频| 亚洲女人国产香蕉久久精品| 九九久久99综合一区二区| 亚洲天堂免费观看| 欧美电影免费| 99色视频在线观看| 久久国产影院| 久久福利影视| 欧美激情中文字幕一区二区| 日本伦理网站| 精品久久久久久综合网| 精品视频在线观看一区二区三区| 欧美1区| 精品毛片视频| 黄视频网站免费观看| 麻豆系列国产剧在线观看| 一级女性大黄生活片免费| 亚洲精品中文一区不卡| 九九久久99综合一区二区| 国产a免费观看| 欧美a级片视频| 香蕉视频一级| 四虎影视精品永久免费网站| 国产精品自拍亚洲| 国产伦精品一区二区三区在线观看| 黄视频网站免费| 亚洲精品久久玖玖玖玖| 亚洲女人国产香蕉久久精品 | 日韩中文字幕一区| 毛片高清| 日韩av成人| 国产一区二区精品尤物| 国产麻豆精品hdvideoss| 精品国产三级a| 欧美大片毛片aaa免费看| 国产一区二区福利久久| 日韩专区一区| 亚洲 男人 天堂| 欧美a免费| 国产网站麻豆精品视频| 午夜激情视频在线播放| 欧美激情一区二区三区视频高清| 九九精品影院| 一级女性全黄久久生活片| 国产视频在线免费观看| 日韩avdvd| 国产成人欧美一区二区三区的| 成人在激情在线视频| 尤物视频网站在线| 成人高清视频在线观看| 韩国毛片 免费| 日韩一级黄色片| 欧美1区| 国产a免费观看| 日本特黄特色aaa大片免费| 久久精品店| 国产伦精品一区二区三区在线观看| 色综合久久天天综合绕观看| 99久久精品国产高清一区二区| 国产网站麻豆精品视频| 台湾毛片| 韩国毛片免费| 一本伊大人香蕉高清在线观看| 色综合久久天天综线观看| 天天做日日干| 日韩免费在线观看视频| 尤物视频网站在线观看| 国产麻豆精品视频| 四虎影视久久久| 青青久热| 久久精品欧美一区二区| 亚洲精品久久玖玖玖玖| 亚洲天堂在线播放| 久久久久久久免费视频| 精品视频在线观看一区二区| 国产成a人片在线观看视频| 精品久久久久久中文字幕2017| 精品国产亚一区二区三区| 黄视频网站在线看| 国产激情一区二区三区| 日本特黄特黄aaaaa大片| 成人免费网站久久久| 日韩中文字幕在线观看视频| 国产网站免费视频|