2013-03-12 53 views
3

我需要能夠從Excel文件中讀取數據,並在驗證數據後將數據上傳到數據庫。是否可以從Excel文件中讀取數據,而無需將其上傳到VB.Net中的服務器?

但是,我正在使用的服務器不允許寫入web應用程序的權限,所以我需要知道是否可以從excel文件讀取而無需通過上載將其寫入服務器?

到目前爲止我還沒有找到明確的答案。

謝謝!

+0

你沒有告訴你如何閱讀excel文件。如果您使用的是OleDb,則會出現問題,因爲連接字符串需要一個文件。那麼,據我所知。 – 2013-03-12 20:15:46

+0

你能提供更多的細節嗎? – 2014-05-21 19:38:03

回答

2

假設您的上傳控件名爲fileUpload

你不需要做一個fileUpload.SaveAs("path")。您可以使用fileUpload.PostedFile.InputStream閱讀流。我用這與它的Excel工作表一個zip文件(該庫是離子的方式):

using (var file = ZipFile.Read(fileUpload.PostedFile.InputStream)) 
{ 
    foreach (var zipEntry in file.Where(ze => ze.FileName.EndsWith(".xls") 
              || ze.FileName.EndsWith(".xlsx"))) 
    { 
     // process the Excel files here. 
    } 
} 

對不起,我不是很熟悉VB.net,所以下面可能是錯誤的。但是因爲你問了一個VB.net版本:

Using file As var = ZipFile.Read(fileUpload.PostedFile.InputStream) 
    For Each zipEntry As var In file.Where(ze => ze.FileName.EndsWith(".xls") or ze.FileName.EndsWith(".xlsx")) 
     ' process the Excel files here. 
    Next 
End Using 
+0

只有一個文件呢?有沒有一種訪問數據的標準方式?循環訪問並存儲數據? – Blunderfest 2013-03-13 19:02:23

+1

正如我在對您的問題的評論中提到的:據我所知,有兩種方法可以讀取excel文件。一個是使用excel庫,這是非常緩慢的錯誤,我不知道它是否可以從流中讀取excel文件。或者您使用OleDb提供程序,它需要一個文件作爲源。如果有另一種選擇,我不知道它。我的例子應該告訴你如何使用流。 – 2013-03-13 19:07:42

相關問題