C# GoogleSheetsAPI.NETV4为网格单元创建下拉列表
我正在尝试在网格上创建一个下拉列表。我是按照这个建议做的。但是,我无法为C# GoogleSheetsAPI.NETV4为网格单元创建下拉列表,c#,.net,visual-studio,google-sheets,google-sheets-api,C#,.net,Visual Studio,Google Sheets,Google Sheets Api,我正在尝试在网格上创建一个下拉列表。我是按照这个建议做的。但是,我无法为UserEnteredValue输入任何字符串值。我得到的带下划线的错误是: 无法将类型“Google.api.Sheets.v4.Data.ConditionValue”隐式转换为“System.Collections.Generic.IList”。存在显式转换(是否缺少强制转换?) 我能够获得以下信息,以使我的情况发挥作用 SpreadsheetsResource.GetR
UserEnteredValue
输入任何字符串值。我得到的带下划线的错误是:
无法将类型“Google.api.Sheets.v4.Data.ConditionValue”隐式转换为“System.Collections.Generic.IList”。存在显式转换(是否缺少强制转换?)
我能够获得以下信息,以使我的情况发挥作用
SpreadsheetsResource.GetRequest request = _sheetsService.Spreadsheets.Get(newTimeSheet.Id);
Spreadsheet spreadsheet = request.Execute();
SheetProperties timeSheetProperties = new SheetProperties();
for (int z = 0; z < spreadsheet.Sheets.Count; z++)
{
SheetProperties sheetProperties = spreadsheet.Sheets[z].Properties;
if (sheetProperties.Title == "3c TIME")
{
timeSheetProperties = sheetProperties;
break;
}
}
var updateCellsRequest = new Request()
{
SetDataValidation = new SetDataValidationRequest()
{
Range = new GridRange()
{
SheetId = timeSheetProperties.SheetId,
StartRowIndex = 2,
StartColumnIndex = 0,
EndColumnIndex = 1
},
Rule = new DataValidationRule()
{
Condition = new BooleanCondition()
{
//Type = "ONE_OF_RANGE",
Type = "ONE_OF_LIST",
Values = new List<ConditionValue>()
{
new ConditionValue()
{
UserEnteredValue = "YES",
},
new ConditionValue()
{
UserEnteredValue = "NO",
},
new ConditionValue()
{
UserEnteredValue = "MAYBE",
}
}
},
InputMessage = "Select an Option",
ShowCustomUi = true,
Strict = true
}
}
};
var requestBody = new Google.Apis.Sheets.v4.Data.BatchUpdateSpreadsheetRequest();
var requests = new List<Request>();
requests.Add(updateCellsRequest);
requestBody.Requests = requests;
var batchRequest = _sheetsService.Spreadsheets.BatchUpdate(requestBody, newTimeSheet.Id);
batchRequest.Execute();
SpreadsheetsResource.GetRequest=\u sheetsService.Spreadsheets.Get(newTimeSheet.Id);
电子表格=request.Execute();
SheetProperties timeSheetProperties=新的SheetProperties();
对于(int z=0;z
我遇到的错误是UserEnteredValue。您不能将单个值(ConditionValue)分配给列表(值)。感谢您指出这一点。我把它拿去工作。如果你认为它有用的话,可以考虑添加你的解决方案,或者删除你的问题。
SpreadsheetsResource.GetRequest request = _sheetsService.Spreadsheets.Get(newTimeSheet.Id);
Spreadsheet spreadsheet = request.Execute();
SheetProperties timeSheetProperties = new SheetProperties();
for (int z = 0; z < spreadsheet.Sheets.Count; z++)
{
SheetProperties sheetProperties = spreadsheet.Sheets[z].Properties;
if (sheetProperties.Title == "3c TIME")
{
timeSheetProperties = sheetProperties;
break;
}
}
var updateCellsRequest = new Request()
{
SetDataValidation = new SetDataValidationRequest()
{
Range = new GridRange()
{
SheetId = timeSheetProperties.SheetId,
StartRowIndex = 2,
StartColumnIndex = 0,
EndColumnIndex = 1
},
Rule = new DataValidationRule()
{
Condition = new BooleanCondition()
{
//Type = "ONE_OF_RANGE",
Type = "ONE_OF_LIST",
Values = new List<ConditionValue>()
{
new ConditionValue()
{
UserEnteredValue = "YES",
},
new ConditionValue()
{
UserEnteredValue = "NO",
},
new ConditionValue()
{
UserEnteredValue = "MAYBE",
}
}
},
InputMessage = "Select an Option",
ShowCustomUi = true,
Strict = true
}
}
};
var requestBody = new Google.Apis.Sheets.v4.Data.BatchUpdateSpreadsheetRequest();
var requests = new List<Request>();
requests.Add(updateCellsRequest);
requestBody.Requests = requests;
var batchRequest = _sheetsService.Spreadsheets.BatchUpdate(requestBody, newTimeSheet.Id);
batchRequest.Execute();