我需要能夠從Excel文件中讀取數據,並在驗證數據後將數據上傳到數據庫。是否可以從Excel文件中讀取數據,而無需將其上傳到VB.Net中的服務器?
但是,我正在使用的服務器不允許寫入web應用程序的權限,所以我需要知道是否可以從excel文件讀取而無需通過上載將其寫入服務器?
到目前爲止我還沒有找到明確的答案。
謝謝!
我需要能夠從Excel文件中讀取數據,並在驗證數據後將數據上傳到數據庫。是否可以從Excel文件中讀取數據,而無需將其上傳到VB.Net中的服務器?
但是,我正在使用的服務器不允許寫入web應用程序的權限,所以我需要知道是否可以從excel文件讀取而無需通過上載將其寫入服務器?
到目前爲止我還沒有找到明確的答案。
謝謝!
假設您的上傳控件名爲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
只有一個文件呢?有沒有一種訪問數據的標準方式?循環訪問並存儲數據? – Blunderfest 2013-03-13 19:02:23
正如我在對您的問題的評論中提到的:據我所知,有兩種方法可以讀取excel文件。一個是使用excel庫,這是非常緩慢的錯誤,我不知道它是否可以從流中讀取excel文件。或者您使用OleDb提供程序,它需要一個文件作爲源。如果有另一種選擇,我不知道它。我的例子應該告訴你如何使用流。 – 2013-03-13 19:07:42
你沒有告訴你如何閱讀excel文件。如果您使用的是OleDb,則會出現問題,因爲連接字符串需要一個文件。那麼,據我所知。 – 2013-03-12 20:15:46
你能提供更多的細節嗎? – 2014-05-21 19:38:03