You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.Net Core中使用Google.Apis.Sheets.v4获取Google表格单元格超链接

解决方案

完全可以通过Google.Apis.Sheets.v4官方SDK实现该需求,不需要手动拼接HTTP请求,根据超链接的存储形式选择对应方案即可:

仅需要在原有代码的请求中添加ValueRenderOption参数配置即可,修改后的代码如下:

SheetsService service = new SheetsService(new BaseClientService.Initializer()
{
    HttpClientInitializer = credential,
    ApplicationName = appName,
});

string spreadSheetName = config.AppSettings.Settings["SpreadSheet"].Value;
string spreadsheetId = config.AppSettings.Settings["ListSpreadSheetId"].Value;
string range = spreadSheetName + myRange;

// API call
SpreadsheetsResource.ValuesResource.GetRequest request =
                  service.Spreadsheets.Values.Get(spreadsheetId, range);
// 新增配置:返回单元格原始公式而非渲染后的文本
request.ValueRenderOption = SpreadsheetsResource.ValuesResource.GetRequest.ValueRenderOptionEnum.FORMULA;

ValueRange response = request.Execute();
IList<IList<Object>> values = response.Values;

返回的values集合中对应单元格会返回完整的HYPERLINK公式,自行解析即可提取超链接地址。

场景2:超链接为单元格内嵌属性(通过右键菜单「插入链接」添加,无公式)

Values接口无法读取该类超链接,需要改用Spreadsheets.Get接口拉取网格数据实现,示例代码如下:

SheetsService service = new SheetsService(new BaseClientService.Initializer()
{
    HttpClientInitializer = credential,
    ApplicationName = appName,
});

string spreadSheetName = config.AppSettings.Settings["SpreadSheet"].Value;
string spreadsheetId = config.AppSettings.Settings["ListSpreadSheetId"].Value;
string range = spreadSheetName + myRange;

// 改用Spreadsheets.Get请求
SpreadsheetsResource.GetRequest request = service.Spreadsheets.Get(spreadsheetId);
// 配置查询范围
request.Ranges = range;
// 开启返回网格数据
request.IncludeGridData = true;
// 配置返回字段,仅取需要的内容减少响应体积
request.Fields = "sheets(data(rowData(values(hyperlink,formattedValue))))";

var response = request.Execute();
// 遍历提取数据
var sheetData = response.Sheets.FirstOrDefault()?.Data.FirstOrDefault();
if (sheetData != null)
{
    foreach (var row in sheetData.RowData)
    {
        foreach (var cell in row.Values)
        {
            string displayText = cell.FormattedValue; // 单元格展示文本
            string hyperlink = cell.Hyperlink; // 单元格内嵌超链接,无超链接时为null
            // 处理业务逻辑
        }
    }
}

内容的提问来源于stack exchange,提问作者Maksym Khomiak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:06:02