2015-02-24 47 views
1

我正嘗試使用我的Excel電子表格來跟蹤我的UPS出貨情況,以便使用交付時間戳進行更新。 我曾經使用的格式爲: http://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0&loc=en_US&Requester=UPSHome&tracknum=[TRK_ID]&AgreeToTermsAndConditions=yes&ignore=&track.x=25&track.y=16在Excel中進行UPS跟蹤

其中[TRK_ID]將引用跟蹤號碼的單元格範圍。 有了這個,我可以點擊單元格中的鏈接,並將其帶到帶有跟蹤信息的頁面。

我不能使用該API,但只想報告傳遞時間戳。也許通過Power Query? 我可以使用Power Query調用網頁,然後提取交付確認時間戳嗎?

回答

0

您可以在單元格中構建一個超鏈接,該鏈接將轉到HYPERLINK function的相關頁面。例如,在A1跟蹤號碼:

=HYPERLINK("http://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0&loc=en_US&Requester=UPSHome&tracknum="&A1&"&AgreeToTermsAndConditions=yes&ignore=&track.x=25&track.y=16", "UPS Tracking page") 

如果你想真正拉下信息,使用像XMLHttpRequest object東西很可能是行動的你最好的當然一個VBA解決方案。

1

它看起來並不有一個乾淨的UPS API給你交貨時間戳記,但功率查詢可以分析出來的HTML:

let 
    PackageDelivery = (tracknum as text) as text => let 
     WebText = Text.FromBinary(Web.Contents("http://wwwapps.ups.com/WebTracking/processInputRequest", [Query = [tracknum = tracknum]])), 
     FromDeliveredOn = Text.Range(WebText, Text.PositionOf(WebText, "Delivered On:")), 
     NextDD = Text.Range(FromDeliveredOn, Text.PositionOf(FromDeliveredOn, "<dd>") + 4, Text.PositionOf(FromDeliveredOn, "</dd>") - Text.PositionOf(FromDeliveredOn, "<dd>") - 4), 
     Cleaned = Text.Clean(Text.Replace(Text.Replace(NextDD, "&nbsp;", " "), "#(lf)", " ")) 
    in 
     Cleaned, 
    Invoked = PackageDelivery("1ZE1W7530369979412") //Replace with your tracking ID 
in 
    Invoked