私が取得することですし、更新値cをGoogleスプレッドシートに新しいシートを作成します。以下のコードを使用してGoogleシートに#
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();
}
私の質問は、私は私Googleスプレッドシートに新しいシートを作成する方法であります現在使用中です。私は私がする必要があるすべては
SpreadsheetsResource.ValuesResource.UpdateRequest upd = service.Spreadsheets.Values.Update(VRange, spreadsheetId, range);
へ
SpreadsheetsResource.ValuesResource.UpdateRequest upd = service.Spreadsheets.create();
を交換していると考えどうやらそれは私が指示を実装する方法を理解することはできません
...間違っていますdocumentation at Method: spreadsheets.create
JSonはどのようにC#でコーディングするのですか?本当に助けに感謝します。
UPDATE は、私はここでこれを見つけたが、それはまだ私に
追加情報のエラーを与えているので、それは完全なものではありません:オブジェクト参照がオブジェクトのインスタンスに設定されていません。
これは、更新されたコードです:あなたはちょうどそれを新しいシートオブジェクトを渡す必要があります作成するためのクライアントライブラリのメソッドがあり
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();
}
まだ不完全だと思いますDalmToは、エラーを表示するわけではありませんが、新しいシートをスプレッドシートに追加しないためです。私の質問で編集した内容をご覧ください。 – Ibanez1408
私はあなたがしたいことを完全に理解しているとは思わない。 https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.sheets/copyToを試したことがありますか – DaImTo