首页 > 解决方案 > 无法使用 tidyverse 和 readxl 从 Web 下载 excel 文件

问题描述

我正在学习 coursera 获取和清理数据 R,作业。

我必须从网上下载excel文件。只读特定的行和列并将其存储在数据框中。然后运行一些计算。

我无法下载excel文件。它显示已下载,但它没有任何内容。我关注了这个网站:

https://github.com/tidyverse/readxl

https://readxl.tidyverse.org/articles/sheet-geometry.html

> library(tidyverse)
> library(readxl)

>download.file(url="https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2FDATA.gov_NGAP.xlsx",
             destfile="./tidydata/week1q3.xlsx")
>list.files("./tidydata")

#I see the file created as week1q3.xlsx 16kb
#have to read rows 18:23 and columns 7:15.
#In a rectangle on a spreadsheet G18:O23
 
>dat<-read_excel("./tidydata/week1q3.xlsx", range="G18:O23")

收到错误:错误:评估错误:unzGetCurrentFileInfo 中的 zipfile 错误 -103

上面的逻辑我无法到达任何地方。下载的包 tidyverse 和 readxl 无助于从 url 下载 excel 文件:“https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2FDATA.gov_NGAP.xlsx”

此外,如何将电子表格的特定行和列读入 Dataframe 将 Range="G18:O23" 工作?

需要注意的是:公共网站是“https”,而在没有 R 的情况下下载的 excel 是“受保护”工作表。我有一个以“3”结尾的excel文件名。不确定这些是否导致问题。

TIA

我也尝试过下面的代码,但它需要 rjava 包。

row <- 18:23
col <- 7:15
dat <- read.xl("./tidydata/week1q3.xlsx", sheetIndex = 1, colIndex = col, rowIndex = row, header = TRUE)

标签: rexcel

解决方案


推荐阅读