在 VBA 中下载文件并存储

2023-12-11

我需要下载从 REST 搜索中获得的文件。网址如下:

(由于隐私原因,我需要对其进行编辑..)

该文件应该是 Nastran 计算的结果,可以通过简单的文本编辑器查看。扩展名是.pch,比较大(~21mb)

如何在 VBA 中实现呢?


首先 - 链接不起作用。其次:根据 HTTP 请求的输出,可以有 2 种方法。

如果输出是文件,您可以使用以下代码:

Sub DownloadFile(url As String, filePath As String)

    Dim WinHttpReq As Object, attempts As Integer
    attempts = 3
    On Error GoTo TryAgain
TryAgain:
    attempts = attempts - 1
    Err.Clear
    If attempts > 0 Then
        Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
        WinHttpReq.Open "GET", url, False
        WinHttpReq.send

        If WinHttpReq.Status = 200 Then
            Set oStream = CreateObject("ADODB.Stream")
            oStream.Open
            oStream.Type = 1
            oStream.Write WinHttpReq.responseBody
            oStream.SaveToFile filePath, 2 ' 1 = no overwrite, 2 = overwrite
            oStream.Close
        End If
    End If
End Sub

如果输出是简单的文本 HTML 响应,您可以将输出保存到文件中

Function GetXMLHTTPResult(url As String)
    Dim XMLHTTP As Object, attempts As Integer
    attempts = 3
    On Error GoTo TryAgain
TryAgain:
    attempts = attempts - 1
    Err.Clear
    If attempts > 0 Then
        Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP")
        XMLHTTP.Open "GET", url, False
        XMLHTTP.setRequestHeader "Content-Type", "text/xml"
        XMLHTTP.setRequestHeader "Cache-Control", "no-cache"
        XMLHTTP.setRequestHeader "Pragma", "no-cache"
        XMLHTTP.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0"
        XMLHTTP.send
        GetXMLHTTPResult = XMLHTTP.ResponseText
    End If
End Function
Sub SaveFile(url)
        res = GetXMLHTTPResult(url)
        Open "C:\res.txt" For Output As #1
        Write #1, res
        Close #1
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 VBA 中下载文件并存储 的相关文章

随机推荐

  • 通过 CMake 添加外部库(例如 Eigen)

    我已经处理这个问题几个星期了 我知道我可能只是错过了一个我没有意识到的小步骤 因此 任何见解都将受到高度赞赏 我正在尝试添加一些外部库并在我的 C 项目中使用它们 但似乎无法弄清楚如何 我阅读了互联网上有关添加外部库的所有帖子 但我相信我错
  • Three.js:使用变形目标获取更新的顶点

    我有一些变形目标正在工作 https jsfiddle net 3wtwzuh3 2 使用滑块控件查看变形 但是 我希望能够访问变形后顶点的新位置 如果您在链接的示例中注意到 我正在显示立方体第一个顶点的 y 坐标 但它没有更新 This
  • ORA-01422: PL/SQL 精确获取返回的行数多于请求的行数

    我不断收到此错误 我无法弄清楚出了什么问题 DECLARE 第 1 行错误 ORA 01422 精确提取返回的行数多于请求的行数ORA 06512 在第 11 行 这是我的代码 DECLARE rec ENAME EMPLOYEE ENAM
  • 以编程方式控制折线图中的符号等

    我有一个 JavaFX 应用程序 我希望用户能够控制折线图中的符号 线条样式等 我不想创建多个样式表 而是想将此功能构建到 Java 代码中 感谢 Jewelsea 之前发布的优秀示例 我可以动态更改线条样式 这太棒了 但我无法更改默认符号
  • 此正则表达式 (RegEx) 标志有何含义 /iD

    我想使用这个正则表达式来验证 IPv6 但我想了解它所做的一切https stackoverflow com a 1934546 3112803 gt gt a f0 9 1 4 gt 1 7 a f0 9 gt 8 1 gt 1 0 6
  • .NET 如何从电子邮件中提取嵌入的图像?

    您好 我正在开发 NET 1 1 中的一个项目 我需要从我收到的电子邮件中提取 并将其保存在某处 嵌入图像 有人可以告诉我从哪里开始吗 谢谢 从 POP 服务器下载的电子邮件将是文本格式 您必须解析整个电子邮件 并找到所有 img 标签具有
  • SharePoint Online 中的 Office 365 Workbooks.open 打开空白文件

    我们公司正在使用 Office 365 Pro Plus 的半年更新频道 最近我们从版本 1708 更新到了 1803 我们正在使用一些自动化宏 而不是从 SharePoint 在线租户打开文件 自更新以来 调用了 Workbooks op
  • 将 pandas 数据帧写入 xlsm 文件(启用宏的 Excel)

    写一个pandas DataFrame到 Excel 工作簿中 xlsx格式很简单 import pandas as pd df pd DataFrame firstColumn 5 2 0 10 4 secondColumn 9 8 21
  • AntiXss.HtmlEncode 与 AntiXss.GetSafeHtmlFragment

    谁能告诉我这两者之间的区别吗 AntiXss HtmlEncode vs AntiXss GetSafeHtmlFragment Html编码实际上对标签进行编码 AntiXss HtmlEncode b hello b
  • Java MongoDB:com.mongodb.DB 和 com.mongodb.client 之间有什么区别

    我是 MongoDB 的新手 我正在一个 Java 项目中工作 我开始了一些教程来开始使用驱动程序 我正在使用com mongodb client直到我注意到里面没有findOne方法com mongodb client MongoColl
  • 示例 MQTT 客户端代码不工作 C

    我从那里得到了示例代码here 我有头文件MQTTClient h以及 但是 当我构建时 我收到错误 undefined reference to MQTTClient create undefined reference to MQTTC
  • 如何使用 Blazor 生成并保存文件客户端?

    我想要一个 SPA 来完成客户端的所有工作 甚至生成一些图表 视觉效果 我希望能够让用户单击按钮并保存页面中的视觉效果 表格和其他内容 既可见又不可见 因此右键单击保存或复制 粘贴并不总是一个选项 如何从 web assembly blaz
  • 如何通过管道传输字符串来处理'STDIN?

    我有一个命令需要来自管道的输入 例如 考虑一下著名的cat命令 echo Hello cat Hello 假设我在 Perl 6 程序中有一个字符串 我想将其通过管道传输到命令 use v6 my input Hello This is t
  • flutter - 如何在应用程序启动和使用时下载资产

    目前 我的应用程序有许多资产 图像 声音 字体 json SQL lite 数据库文件等 全部已定义在pubspec yaml 但是 由于要求减少 APK 大小 我需要其中一些应用程序启动时下载并将其保存到存储中 下次无需下载 如果资源尚未
  • 如何使用 Spring MVC 从 url 下载文件?

    我的 jsp 中有这样的下载选项 a href img src images download gif alt Download border 0 align right 上面的 url 是文件的位置 名称是文件名 单击jsp中的下载选项时
  • awk每列n条数据的平均值

    使用 awk 将值存储在数字列表中 提供使用 awk 对列中每组 3 个点进行平均的解决方案 如何将其扩展到保持格式的无限数量的列 例如 2457135 564106 13 249116 13 140903 0 003615 0 00344
  • 检测并修复 JavaScript 中的循环引用

    鉴于我在一个大型 JavaScript 对象中有一个循环引用 我尝试JSON stringify problematicObject 浏览器抛出 类型错误 将循环结构转换为 JSON 这是预期的 那我想找到这个循环引用的原因 最好使用Chr
  • git 警告“无法访问权限被拒绝”在 .gitignore 目录上

    我的一个名为 Database 的目录中有一个名为 gitignore 的子目录 我希望 git 忽略它 所以我将其列在我的 gitingore 文件中 gitignore Bb in Dd ebug Rr elease gitignore
  • 在视口组件上使用 JScrollPane 鼠标侦听器

    我有一个JScrollPane可以设置其视口View到一系列不同的面板 我想在单击其视口中的任何其他组件时获取 JScrollPane 组件 如果我添加一个MouseListener对于 JScrollPane 当我直接单击窗格边框时 它会
  • 在 VBA 中下载文件并存储

    我需要下载从 REST 搜索中获得的文件 网址如下 由于隐私原因 我需要对其进行编辑 该文件应该是 Nastran 计算的结果 可以通过简单的文本编辑器查看 扩展名是 pch 比较大 21mb 如何在 VBA 中实现呢 首先 链接不起作用