如何用googlesheets4的range_read_cells()读取谷歌表格超链接
批量提取谷歌表格中的超链接URL
要批量提取谷歌表格单元格中的超链接URL并添加为新列,可以通过以下步骤实现:
1. 加载依赖包
确保已安装并加载所需的R包:
library(googlesheets4) library(dplyr) library(purrr) library(tidyr)
2. 读取完整单元格元数据
使用range_read_cells()获取包含超链接的完整单元格数据:
# 读取目标表格的完整单元格信息 cell_metadata <- range_read_cells( ss = "https://docs.google.com/spreadsheets/d/1oLj5YyBG2-ucvhhMUrl2K0Ko8jJkX4uvDChVfSfxT0o/edit#gid=0", sheet = "Sheet1", range = "A1:C5", cell_data = "full" )
3. 提取每个单元格的超链接URL
遍历cell列中的嵌套列表,提取hyperlink字段,无超链接的单元格填充为NA:
cell_metadata <- cell_metadata %>% mutate( hyperlink_url = map_chr(cell, ~ .x$hyperlink %||% NA_character_) )
4. 合并URL到原表格
先读取仅含显示文本的原表格,再将提取的URL按行列对应合并为新列:
# 读取原表格的显示文本 original_data <- read_sheet( ss = "https://docs.google.com/spreadsheets/d/1oLj5YyBG2-ucvhhMUrl2K0Ko8jJkX4uvDChVfSfxT0o/edit#gid=0", sheet = "Sheet1", range = "A1:C5" ) # 将URL数据转为宽格式,匹配原表格的列结构 url_wide <- cell_metadata %>% select(row, col, hyperlink_url) %>% pivot_wider( names_from = col, values_from = hyperlink_url, names_prefix = "url_col_" ) # 合并原表格与URL列 final_data <- bind_cols(original_data, url_wide %>% select(-row))
说明
%||%用于处理无超链接的单元格,自动返回NA,后续可通过replace_na()将NA替换为指定值- 生成的
url_col_1、url_col_2等列对应原表格的A、B、C列,可根据需要重命名列名
内容的提问来源于stack exchange,提问作者darth_chaos
相关产品推荐
相关产品推荐

