2010-05-23 65 views
1

我花了幾個小時在網上搜索有關使用VBA在Excel中從Web調用數據的任何事情,沒有提供關於如何這樣做的教程,只有複雜的示例與什麼無關我想要做。使用Excel從網上檢索數據

我想要從.html或.xml網站提取數據,無關緊要,可以通過Excel找到該數據中的特定點。我可以找到具體的點,但不知道如何獲取數據或滾動多行。我在mIRC中完成了這種確切的事情(C代碼)。

http://eve-central.com/home/quicklook.html?typeid=438
http://api.eve-central.com/api/quicklook?typeid=438
這是兩個例子,使用大致相同的數據,我想找回。這將是更具體的最多100個左右不同的值。

我希望能夠學會如何去做,而不是讓代碼去做,或者如果你必須深入地解釋每個部分的評論。
編輯:我只是在這裏說,我不希望你鏈接我一些類似的隨機代碼,並期望我在沒有解釋的情況下修改它。不想讓別人寫一個關於Excel的互聯網功能的完整指南。

感謝 尼克

編輯:我會嘗試不同的感覺再次解釋它。我玩一款名爲EVE Online的遊戲,在線上有很多「市場」數據庫,允許以這種形式訪問某些項目的價格數據。我非常想在Excel文檔中做到這一點,然後明確地將它們列入隱藏表格中。我不想使用輔助程序,我知道在Excel中完全有可能。

回答

1

這是一個快速和粗略的答案,因爲你的做法聽起來有點狡猾(見評論),但從我對Excel的理解中,我認爲你最好的選擇是使用ODBC驅動程序並直接與MS Access連接(然後導出到excel)到網站用來接收所有數據的同一個數據庫。

這將意味着您將需要: 1.數據庫的用戶名和密碼。 2.網站用於檢索數據的關聯sql查詢。 (可能包括連接,函數等)

否則,您將不得不通過「front」,來獲得它,並且您將需要爲每個頁面的部分編寫自己的html解析器以生成一個xml文件這樣excel可以乾淨地讀取最終的內容表數據。(適用於Excel 2007及更高版本) 這樣做也可以使您能夠推斷xml模式中列的'數據類型',如int,char,bigint等。但是,這可能只需要在控制檯C#/ C++/java之類的東西上完成,而不是在excel中,因爲我相當確信excel沒有一個功能可以讓你自己編寫'HTML to XML'它對一個網站的解析器一無所知。

希望這有助於..

+1

只是一個想法,你想重新建立數據庫無w/o權限? – 2010-05-23 07:26:34

+0

Micorsoft XML庫可用於解析XML,並可根據您安裝的版本添加對宏項目的引用。 – Ahmad 2010-05-23 08:24:43

+0

它可以通過網絡s_rathbone自由訪問。我只是想在Excel中將它解析爲一個更容易閱讀的版本,並且他們已經設計了他們的數據庫,以便通過從第二頁下載的程序和數據輕鬆訪問它們。 – user348152 2010-05-23 10:19:04

1

這裏看看 - How can I send an HTTP POST request to a server from Excel using VBA?getHTTP with (excel) VBA?

與代碼部分交易。有關所提供鏈接的說明,請參閱有關WinHttp.WinHttpRequest.5.1MSXML2.ServerXMLHTTP的MSDN文檔以更好地瞭解這些庫的用途。我還建議讀了一些關於在VBA中使用COM對象

我想學習如何做到這一點,沒有給 代碼做到這一點,或者如果你 必須解釋與評論的每部分 請深入。

不是粗魯的,但這聽起來像是你想讓別人教你如何編碼。我不認爲人們可以簡單地教代碼。

編輯:

我誤解了你的問題,如果我錯了糾正我,但你的問題的癥結圍繞I can find specific points but don't know how to get the data or scroll through multiple lines.

使用http://msdn.microsoft.com/en-us/library/aa163921(office.10).aspx,你可能會需要得到你所有的結果節點成一個XML對象。然後你可能需要遍歷結果集(我認爲你的意思是滾動)。

相關問題:How to parse XML using vba

1

1)複製鏈接到你想要的價格數據。即

http://api.eve-central.com/api/marketstat?typeid=34&typeid=35&regionlimit=10000002

2)在Excel中選擇你想要的數據要導入到的位置。最好是一張空白紙。

3)數據 - >導入外部數據 - >新建Web查詢。

4)將鏈接粘貼到地址欄中。您稍後可以編輯鏈接以添加或減去typeid。

5)按​​下Go按鈕。

6)選擇其中一個黃色箭頭框。我選擇了直接在evec_api版本上面的框。

7)按OK按鈕,將數據導入到您在步驟中選擇的片材2

現在你可以右鍵點擊數據,以「刷新數據」。

使用任何查找公式來讀取這些數據的價格到您的工作表的其餘部分。

您可以通過右鍵點擊數據的任何部分,然後選擇更改Web查詢的地址「編輯查詢......」

希望這可以讓你在正確的方向前進。這將適用於Excel版本2002(XP)和2003.Excel 2007對XML查詢更友好。