2014-05-02 155 views
3

我對VB.net來說還算新手,並且從來沒有用它來處理Office文件。 現在我必須查看Excel文件並根據單元格中的數據發送一些電子郵件。我不需要爲這些文件寫任何東西。 到目前爲止,我已經閱讀了很多關於PIA的內容,到目前爲止,它看起來我必須爲特定的Office版本設計我的應用程序? 有沒有辦法編寫可處理由不同版本的MS Excel創建的文件的應用程序? 我希望能夠處理這些文件沒有辦公室被安裝在計算機上,有沒有辦法做到這一點?如何在沒有安裝Office的情況下處理vb.net中的excel文件

+0

您需要支持哪些格式? Excel所做的任何事情?只有某些版本的Excel?請記住,舊版本專門用於XLS格式,該格式本質上是Excel內部數據結構的二進制轉儲。在不重寫Excel的情況下解析它將非常困難。較新的版本使用XLSX格式,基本上是包含XML文件的ZIP文件。如果你能保證這是你收到的唯一的輸入,這個解析就容易得多。 –

回答

1

可以使用

  1. npoi

  2. epplus

    不需要的Excel

+0

+1對於EPPlus。這是我使用的主要圖書館。我發現它很容易使用,它可以完成我需要的大部分功能。它沒有我用OLEDB驅動程序遇到的性能問題。 – Origin

+0

因爲我需要處理.xls文件,所以我決定使用excellibrary,它迄今爲止效果很好。正在考慮使用NPOI,但在某處閱讀並不是非常「用戶友好」,可能會爲下一個項目做好準備。 – user2824519

2

你可以使用Open XML SDK 2.0的Microsoft Office link

2

不需要安裝Office以從Excel文件中獲取數據。

但是,爲了從EXCEL文件獲取數據,如果您將應用程序託管在服務器上,則必須在本地計算機和服務器中安裝OLEDB驅動程序。

您可以從MICROSOFT下載OLEDB驅動程序。

con = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + YourEXCELFilePath + ";Extended Properties=Excel 12.0;") 

con.Open() 
atatable = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing) 
sheetname = datatable.Rows(0)("table_name").ToString 
excelcomm = New OleDbCommand("select * from [" + sheetname + "]", con) 
adexcel = New OleDbDataAdapter(excelcomm) 
adexcel.Fill(Dataset) 

此代碼後,你會得到的數據集Excel工作表中的數據。

可能這段代碼可以幫助您從excel文件中獲取數據。

(注:此代碼位於vb.net)

相關問題