1. 程式人生 > >C# Aspose.Cells匯出xlsx格式Excel,開啟檔案報“Excel 已完成檔案級驗證和修復。此工作簿的某些部分可能已被修復或丟棄”

C# Aspose.Cells匯出xlsx格式Excel,開啟檔案報“Excel 已完成檔案級驗證和修復。此工作簿的某些部分可能已被修復或丟棄”

報錯資訊:

最近開啟下載的 Excel,會報如下錯誤。(xls 格式不受影響)

解決方案:

下載程式碼(紅色為新添程式碼)

public void download()
{
    string fileName = "456.zip";//客戶端儲存的檔名
    string filePath = AppDomain.CurrentDomain.BaseDirectory.Replace("\\", "/") + "Excel/123.zip";

    System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);

    
if (fileInfo.Exists == true) { //每次讀取檔案,只讀取1M,這樣可以緩解伺服器的壓力 const long ChunkSize = 1048576; byte[] buffer = new byte[ChunkSize]; Response.Clear(); //獲取檔案 System.IO.FileStream iStream = System.IO.File.OpenRead(filePath); //獲取下載的檔案總大小 long
dataLengthToRead = iStream.Length; //二進位制流資料(如常見的檔案下載) Response.ContentType = "application/octet-stream"; //通知瀏覽器下載檔案而不是開啟 Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName)); //加上設定大小下載下來的.xlsx檔案開啟時才不會報“Excel 已完成檔案級驗證和修復。此工作簿的某些部分可能已被修復或丟棄”
Response.AddHeader("Content-Length", iStream.Length.ToString()); using (iStream)//解決檔案佔用問題,using 外 iStream.Dispose() 無法釋放檔案 { while (dataLengthToRead > 0 && Response.IsClientConnected) { int lengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//讀取的大小 Response.OutputStream.Write(buffer, 0, lengthRead); Response.Flush(); dataLengthToRead = dataLengthToRead - lengthRead; } iStream.Dispose(); iStream.Close(); } Response.Close(); Response.End(); } }

給下載加了個長度,解決問題。

Response.AddHeader("Content-Length", iStream.Length.ToString());

相關推薦

C# Aspose.Cells匯出xlsx格式Excel開啟檔案Excel 完成檔案驗證修復工作簿某些部分可能修復丟棄

報錯資訊: 最近開啟下載的 Excel,會報如下錯誤。(xls 格式不受影響) 解決方案: 下載程式碼(紅色為新添程式碼) public void download() { string fileName = "456.zip";//客戶端儲存的檔名 string f

asp.net NPOI導出xlsx格式文件打開文件Excel 完成文件驗證修復工作簿某些部分可能修復丟棄

tpc com filesize instance ons 讀取 div 技術 i++ NPOI導出xlsx格式文件,會出現如下情況: 點擊“是”: 導出代碼如下: /// <summary> /// 將datatable數據寫

【小家java】一個基於POI的Excel的匯入、匯出工具處理類(支援xlsxlsx格式另有SpringMVC的匯入、匯出案例講解

相關閱讀 前言 表格的匯入、匯出可謂開發過程中經常會碰到的功能。然後這種模版化的東西並不需要每次都去編碼一次,因此我就整理了一個Excel的萬能處理類。能夠實現相容2003、2007的各種Excel格式的匯入匯出功能,使用起來也非常的方面,適用於所有業務場景

C# Aspose.Cells拷貝Excel

Workbook workBook = new Workbook(OFD.FileName); Cells cells = workBook.Worksheets[0].Cells; if (cells == null) return; Data

C# Aspose.Cells.dll Excel操作總結

簡介 Aspose.Cells是一款功能強大的 Excel 文件處理和轉換控制元件,不依賴 Microsoft Excel 環境,支援所有 Excel 格式型別的操作。 獲取Excel資料 Workbook workbook = new Workbook("E:\\test.xlsx"); C

Java 下載 Excel模板時修正 Excel在“xxx.xlsx”中發現不可讀取的內容是否恢復工作薄的內容?如果信任工作簿的來源請點選"是"

程式碼如下: /** * 下載匯入應用模板 * * @return */ @ResponseBody @RequestMapping(method = RequestMethod.GET) public Response getAp

十七 bootstrap-table tableExport 匯出xlsx格式表格

在[十六、bootstrap-table javascript匯出資料]中,開啟匯出的表格時,總會彈出一個提示窗 那麼,匯出xlsx格式的應該就沒問題了吧?!實驗如下,查詢tableExport.js資料 TableExport外掛依賴於jQu

jasperReports 通過java匯出各種格式報表及javaweb專案整合顯示各種報表

注意:編寫此專案時,請先手動編寫**.jrxml  或者用IReport生成**.jrxml或**.jasper 注:java匯出報表與web專案顯示報表方法其實是相同的,只不過有一句程式碼不同,如下 html.setParameter(JRHtmlExporte

NPOI寫ExcelMicrosoft.Office.Interop.excel.dll 轉換Excel為PDF

首先要引用NPOI動態庫和Microsoft.Office.Interop.excel.dll (Microsoft.Office.Interop.excel.dll 下載連結,下載以後解壓檔案,把Microsoft.Office.Interop.excel.dll拷貝到專案下,新增引用。NPO

c#中引用Microsoft.SqlServer.Types後系統執行"未能載入 SqlServerSpatial140.dll找不到指定的模組(異常來自......)的解決方法

1.在資源管理器中檢視C:\Windows\System32或者C:\Windows\SysWOW64下有沒有SqlServerSpatialXXX.dll的檔案,如果沒有,在網上下載後,把檔案重新命名為報錯的dll檔名,將其放入此目錄下 2.如果有,如下圖,我將原本的130改為140,程式便不

C# Form.Hide()後再 Show()時Dock不為 none的 控制元件將不會顯示

  具體原因不是很清楚,查看了下 Control 的原始碼, Hide 和Show方法只是改變了 Visible屬性,然後看了下OnVisibleChanged方法,裡面的內容比較多,我就沒細看,想來也是控制其上的子控制元件的 visible屬性,但沒看到與 dock有何關

win7下VS2008 使用ODBC讀寫EXCEL找不到EXCEL驅動安裝驅動的辦法

終於出現了 Microsoft Excel 12.0 Object Library<1.6>這一項受下面一段話的啟發:[color=#00CCFF]Excel.cpp和Excel.h是從Excel的型別庫中獲取的,型別庫類似C++中的標頭檔案,包括介面,方法,屬性

【FIF_Bro的部落格】C++ 的最大優點是它是一門強大兼顧了底層效率的高階語言這使得 C++ 幾乎沒有任何侷限性無所不能只要你是一個追求極致達到偏執的人你幾乎總可以追尋到它的影子存在這門語言超高的開發成本使得只有偏執的人才會對它痴狂

C++ 的最大優點是,它是一門強大,兼顧了底層效率的,高階語言。這使得 C++ 幾乎沒有任何侷限性,無所不能。只要你是一個追求極致達到偏執的人,你幾乎總可以追尋到它的影子和存在。這門語言超高的開發成本...

C#中關閉第一個Form視窗開啟另一個新視窗方法

C#程式設計時,經常會遇到處理兩個或多個視窗的問題。以登入視窗為例,當登入視窗登入驗證成功後,要進入主視窗,此時需要關閉登入視窗,這時候用this.close()是不可以的。因為Program.cs中          static void Main()         {             App

MATLAB/C語言混編的第一步在MATLAB R2017b中生成mex檔案

Matlab在科學計算方面的優越性使其成為科研人員的必備軟體之一,搭載了大量複雜工具箱,日益優雅的程式碼編輯器讓MATLAB R2017b徹底替代了之前的先輩版本。然而MATLAB畢竟是一個商業化的數學軟體,在大型演算法的編寫和執行上都存在諸多缺點。因此一些大神們更喜歡用C

題目:輸入一個字串打印出該字串中字元的所有排列例如輸入字串abc則輸出由字元a、b、c所能排列出來的所有字串abc、acb、bac、bca、cabcba

題目:輸入一個字串,打印出該字串中字元的所有排列。例如輸入字串abc,則輸出由字元a、b、c所能排列出來的所有字串abc、acb、bac、bca、cab和cba。 /** * */ pack

警惕!因為這些原因你的簡歷可能HR直接丟棄

程序員簡歷源 | 小象 文 | 小象君你知道嗎?據有關數據統計,HR在初步篩選簡歷時在簡歷上停留的時間不會超過1分鐘,倘若應聘者眾多,分配在各個簡歷上的時間還會進一步縮短,二十秒或十秒看完一篇簡歷也很尋常。因此,你的簡歷實際並不是被閱讀,而只是被掃描。

公司簡介: Faceunity(杭州相芯科技有限公司)專注智慧圖形技術的創新與應用為移動網際網路、VR/AR等領域提供3D內容生成與互動的行業解決方案致力於好萊塢特效技術在消費應用的普及 Fac

歡迎使用Markdown編輯器 你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,瞭解一下Markdown的基本語法知識。 新的改變 我們對Markdown編輯器進行了一些功能拓展與語法支援,除了

1.問題一:在oracle中連續十次嘗試登陸不成功那麼賬戶將會鎖定(lock)當使用鎖定的賬戶登入時系統會錯:ORA-28000: the account is locked

解決思路: 以管理員的身份登入,即以sys或者system登入資料庫; 使用命令解鎖使用者:alter user 這裡是使用者名稱 account unlock; 重置密碼:alter user 這裡是使用者名稱 identified by 這裡是重置的密碼; 重新登入即可。