【发布时间】:2021-09-24 18:37:17
【问题描述】:
我一直在使用 google sheet API,我需要能够相互交换 2 个单元格。我遇到的问题是我无法将所有数据从一个单元格复制到另一个单元格,总是缺少一些东西。我这里的代码可以将数据从一个单元格复制到另一个单元格,但是缺少文本和注释。
UserCredential credential;
using (var stream =
new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
string credPath = System.Environment.GetFolderPath(
System.Environment.SpecialFolder.Personal);
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
Console.WriteLine("Credential file saved to: " + credPath);
}
// Create Google Sheets API service.
var service = new SheetsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
// Define request parameters.
String spreadsheetId = "<ID>";
SpreadsheetsResource.GetRequest request =
service.Spreadsheets.Get(spreadsheetId);
request.Ranges = "G16";
request.IncludeGridData = true;
Spreadsheet response = request.Execute();
CellData Cell1 = response.Sheets[0].Data[0].RowData[0].Values;
//get sheet id by sheet name
Spreadsheet spr = service.Spreadsheets.Get(spreadsheetId).Execute();
Sheet sh = spr.Sheets[0];
int sheetId = (int)sh.Properties.SheetId;
BatchUpdateSpreadsheetRequest bussr = new BatchUpdateSpreadsheetRequest();
//create the update request for cells from the first row
var update = new Request()
{
RepeatCell = new RepeatCellRequest()
{
Range = new GridRange()
{
SheetId = sheetId,
StartColumnIndex = 6,
StartRowIndex = 13,
EndColumnIndex = 7,
EndRowIndex = 14
},
Cell = Cell1,
Fields = "UserEnteredFormat"
}
};
bussr.Requests = new List<Request>();
bussr.Requests.Add(update);
var bur = service.Spreadsheets.BatchUpdate(bussr, spreadsheetId);
bur.Execute();
有没有办法在同一个请求中复制文本/注释?
【问题讨论】:
标签: c# .net google-sheets google-sheets-api