【发布时间】:2026-01-23 13:20:03
【问题描述】:
有很多关于如何使用 XLConnect 包将 Microsoft Excel 文件读入 R 的好示例,但我找不到任何有关如何直接从 URL 读取 Excel 文件的示例。下面的可重现示例返回“FileNotFoundException (Java)”。但是,我知道该文件存在,因为我可以通过将 URL 粘贴到浏览器中直接提取它。
fname <- "https://www.misoenergy.org/Library/Repository/Market%20Reports/20140610_sr_nd_is.xls"
sheet <- c("Sheet1")
data <- readWorksheetFromFile(fname, sheet, header=TRUE, startRow=11, startCol=2, endCol=13)
虽然 URL 以“https:”为前缀,但它是一个不需要用户名或密码的公共文件。
我尝试先使用download.file(fname, destfile="test.xls") 下载文件并收到一条消息说它已下载但是当我尝试在 Excel 中打开它以检查它是否成功时,我得到一个 Excel 弹出框,上面写着“ ..在“test.xls”中发现不可读的内容。
以下是我的系统的详细信息:
计算机:64 位戴尔运行 操作系统:Windows 7 专业版 R 版本:R-3.1.0
任何帮助将不胜感激。
【问题讨论】:
-
我认为你需要先下载文件。
-
我尝试了 download.file(fname, destfile="test.xls") 并收到一条消息说它已下载但是当我尝试在 Excel 中打开它以检查 Exel 说“..在“test.xls”中发现不可读的内容。这很奇怪,因为我可以通过将 URL 粘贴到浏览器中直接打开它。
-
是的,我也试过了。不知道发生了什么。
-
问题似乎出在实际的 Excel 文件上,而不是您的代码上 - 快速的 Google 搜索会发现其他人有类似的 Java 错误消息,其中包含已损坏的 Office 文件或过时的 Java。我知道它不如以编程方式进行,但您可以复制数据并放入 CSV 文件吗? cran.r-project.org 说:“第一条建议是尽可能避免这样做!如果您可以访问 Excel,请以制表符分隔或逗号分隔的形式从 Excel 导出您想要的数据,并使用 read .delim 或 read.csv 将其导入 R。"
-
感谢您的回复。在这种情况下,复制粘贴到 CSV 文件是不切实际的,因为我的主要目标之一是自动收集和分析这个每日时间序列。每天手动操作只是没有效率。