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

其中 [TRK_ID] 将引用跟踪号的单元格范围。有了这个,我可以单击单元格中的链接并被带到包含跟踪信息的页面。

我无法使用 API,但只想报告交付时间戳。也许通过 Power Query?我可以使用 Power Query 调用网页然后提取交货确认时间戳吗?

4

3 回答 3

1

看起来没有一个干净的 UPS api 可以为您提供交付时间戳,但 Power Query 可以将其从 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
于 2015-10-11T08:14:39.587 回答
0

您可以在单元格中构建一个超链接,该链接将使用HYPERLINK 功能转到相关页面。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 对象的 VBA 解决方案可能是您的最佳选择。

于 2015-02-24T14:16:14.253 回答
0

这是 user4039065 的答案,如果参考单元格为空白,则链接不会显示(只是我个人的偏好):

=IF(**O18**<>"",HYPERLINK("http://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0&loc=en_US&Requester=UPSHome&tracknum="&**O18**&"&AgreeToTermsAndConditions=yes&ignore=&track.x=25&track.y=16","Track"),"")

将公式中的两个位置更改O18为跟踪号所在的单元格。

于 2019-03-06T15:37:33.360 回答