ich in der Lage bin abzurufen und zu aktualisieren Werte in Google Sheets den Code unter Verwendung von:Erstellen Sie ein neues Blatt in Google Blatt C#
private void btnUpdate_Click(object sender, EventArgs e)
{
if (cbYards.Text == "Select Yard")
{
MessageBox.Show(@"Please select a yard.");
return;
}
UserCredential credential;
using (var stream =
new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
{
string credPath = System.Environment.GetFolderPath(
System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials/sheets.googleapis.com-dotnet-quickstart.json");
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
Console.WriteLine("Credential file saved to: " + credPath);
}
var service = new SheetsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
IList<IList<Object>> list = new List<IList<Object>>() { };
for (var i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
var formula = "=IFERROR(VLOOKUP(B"+(i+2)+",Names!$A$2:$B,2,FALSE),\"No Record\")";
List<object> lists = new List<object>() { formula, dataGridView1.Rows[i].Cells[0].Value.ToString(),
dataGridView1.Rows[i].Cells[1].Value.ToString() };
list.Add(lists);
}
var range = cbYards.Text+"!A2:C";
ValueRange VRange = new ValueRange();
VRange.Range = range;
VRange.Values = list;
//ValueRange response = request.Execute();
ValueRange valueRange = new ValueRange();
valueRange.MajorDimension = "COLUMNS";
SpreadsheetsResource.ValuesResource.UpdateRequest upd = service.Spreadsheets.Values.Update(VRange, spreadsheetId, range);
upd.ValueInputOption = SpreadsheetsResource.ValuesResource.UpdateRequest.ValueInputOptionEnum.USERENTERED;
UpdateValuesResponse response = upd.Execute();
}
Meine Frage ist, wie kann ich ein neues Blatt in der Google-Tabelle erstellen, die ich verwende derzeit. Ich dachte, dass alles, was ich tun müssen, um den
SpreadsheetsResource.ValuesResource.UpdateRequest upd = service.Spreadsheets.Values.Update(VRange, spreadsheetId, range);
zu
SpreadsheetsResource.ValuesResource.UpdateRequest upd = service.Spreadsheets.create();
wird ersetzen, aber anscheinend ist es falsch ...
Ich kann nicht verstehen, wie die Anweisungen in dem zur Umsetzung Dokumentation unter Method: spreadsheets.create
Was macht der JSon mit, wie ich in C# codieren werde? Ich schätze die Hilfe sehr.
UPDATE Ich fand hier das, aber es ist nicht vollständig, da es immer noch mir einen Fehler von
Zusätzliche Informationen geben: Objektverweis nicht auf eine Instanz eines Objekts festgelegt.
Dies ist der aktualisierte Code:
private void button1_Click(object sender, EventArgs e)
{
UserCredential credential;
using (var stream =
new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
{
string credPath = System.Environment.GetFolderPath(
System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials/sheets.googleapis.com-dotnet-quickstart.json");
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
Console.WriteLine("Credential file saved to: " + credPath);
}
var service = new SheetsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
string sheetName = string.Format("{0} - {1}-{2}", cbYards.Text, fromDate.Value.ToShortDateString(), toDate.Value.ToShortDateString());
var myNewSheet = new Google.Apis.Sheets.v4.Data.Spreadsheet();
myNewSheet.Properties = new SpreadsheetProperties();
myNewSheet.Properties.Title = sheetName;
var newSheet = service.Spreadsheets.Create(myNewSheet).Execute();
}
Ich denke, es ist immer noch unvollständig DalmTo, obwohl es mir keine Fehler gibt, fügt es das neue Blatt der Tabelle nicht hinzu. Bitte beachten Sie die Änderungen, die ich in meiner Frage vorgenommen habe. – Ibanez1408
Ich glaube nicht, dass ich komplett verstehe, was Sie zu tun versuchen. Haben Sie https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.sheets/copyTo ausprobiert? – DaImTo