R语言中如何读取httr获取的raw格式Excel向量数据?
方案1:写入临时文件后读取(兼容性最高)
该方案适配所有Excel格式(包括xls、xlsx),无需提前判断文件格式,是最稳妥的解决方式:
# 生成带xls后缀的临时文件,匹配响应返回的mime类型 temp_file <- tempfile(fileext = ".xls") # 将raw类型的响应内容写入临时文件 writeBin(httr::content(res, as = "raw"), con = temp_file) # 使用readxl包读取文件,可替换为任意支持本地路径的Excel读取包 library(readxl) df <- read_excel(temp_file) # 可选:手动删除临时文件,R会话结束后临时文件也会自动清理 unlink(temp_file)
方案2:直接读取raw数据(无需写入本地磁盘)
你获取到的raw数据开头为50 4b 03 04,是ZIP格式的魔术头,说明文件实际为xlsx格式(xlsx本质是ZIP打包的XML文件集合,响应头mime类型标注有误),可使用openxlsx包直接读取raw数据,无需写入本地:
library(openxlsx) # 直接将raw内容传入读取函数即可 df <- read.xlsx(xlsxFile = httr::content(res, as = "raw"))
内容的提问来源于stack exchange,提问作者CapnBody
相关产品推荐
相关产品推荐

