2016-03-11 29 views
0

我在使用文件上傳對話框後使用oledb引擎打開excel文件時出現問題。如果我使用固定文件名設置oledb連接的文件名,它將起作用,但是如果我嘗試從文件上傳控件獲取文件名,則會收到錯誤外部表格未處於預期格式。該文件未在另一個應用程序中打開。我已經嘗試處理和關閉文件上傳中的所有文件內容。我的代碼如下在文件上傳後使用oledb

if (FileUpload1.HasFile) 
{ 
    //sXLConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strvirtpath + "\\Unlocked Upload-v5.xlsx " + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";"; 
    sXLConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strvirtpath + "\\" + FileUpload1.FileName + " ;Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";"; 
    FileUpload1.FileContent.Flush(); 
    FileUpload1.FileContent.Close(); 
    FileUpload1.FileContent.Dispose(); 
    FileUpload1.Dispose(); 
} 
OleDbConnection xlConn = new OleDbConnection(sXLConnStr); 
xlConn.Open(); 

任何幫助,將不勝感激。

+0

你能在Excel中手動打開上傳的文件嗎?在上傳過程中,它可能會被破壞。 –

+0

我強烈建議使用EPPlus而不是Oledb來處理Excel文件。它功能更強大,易於使用。但是,它不支持舊的.xls格式,只有.xlsx https://www.nuget.org/packages/EPPlus/ –

回答

1

先保存文件,然後使用保存文件的路徑進行訪問。

FileUpload1.SaveAs(directory + @"\" + filename); 
+0

這不起作用。你的意思是將它保存到不同的目錄? –

+0

將文件保存到其他路徑時可以使用 –

相關問題