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

C#修改Google Sheets新增行高时类型不匹配问题求助

问题解决:Google Sheets API修改行高时类型不匹配

核心问题原因

BatchUpdateSpreadsheetRequest的Requests列表接收的是Request类型对象,而你直接添加了UpdateDimensionPropertiesRequest,两者类型不兼容——必须把UpdateDimensionPropertiesRequest包装到Request实例的对应属性中才能添加。

修正后的完整代码

// 将字符串列表转为对象列表(简化写法)
var valueRange = new ValueRange
{
    Values = new List<IList<object>> { columns.Cast<object>().ToList() }
};

// 更新指定行的单元格内容
var appendRequest = service.Spreadsheets.Values.Update(
    valueRange, 
    spreadsheetId, 
    $"{sheetname}!A{rownumber}:Z{rownumber}"
);
appendRequest.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
var appendResponse = appendRequest.Execute();

// 修改行高为100像素
var batchUpdateRequest = new BatchUpdateSpreadsheetRequest();

// 1. 创建行维度属性更新请求
var updateDimRequest = new UpdateDimensionPropertiesRequest
{
    Range = new DimensionRange
    {
        SheetId = sheetId,
        Dimension = "ROWS",
        StartIndex = rownumber - 1, // Google Sheets API索引从0开始,行号转索引需减1
        EndIndex = rownumber       // 左闭右开区间,EndIndex取行号本身
    },
    Properties = new DimensionProperties { PixelSize = 100 },
    Fields = "pixelSize"
};

// 2. 把UpdateDimensionPropertiesRequest包装到Request对象中
var request = new Request { UpdateDimensionProperties = updateDimRequest };

// 3. 添加到批量请求列表
batchUpdateRequest.Requests = new List<Request> { request };

// 执行批量更新
var batchResponse = service.Spreadsheets.BatchUpdate(batchUpdateRequest, spreadsheetId).Execute();

额外修正点

  • 移除了UpdateDimensionPropertiesRequest初始化时多余的右括号
  • 简化了字符串列表转对象列表的代码(用Cast<object>()替代手动循环)
  • 修正了StartIndex和EndIndex的赋值:Google Sheets API的行索引从0开始,第N行对应的索引区间是[N-1, N)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:40:26