Google sheets GoogleSheetsAPI。追加方法问题。C#
当我试图在电子表格中添加时,我遇到了一个问题 My Program.cs:Google sheets GoogleSheetsAPI。追加方法问题。C#,google-sheets,google-api,Google Sheets,Google Api,当我试图在电子表格中添加时,我遇到了一个问题 My Program.cs: class Program { private static GApiHandler gapi = GApiHandler.getInstance(); static void Main(string[] args) { var db = new AppDbContext(); var sheetInfo = db.SheetInfoes .
class Program
{
private static GApiHandler gapi = GApiHandler.getInstance();
static void Main(string[] args)
{
var db = new AppDbContext();
var sheetInfo = db.SheetInfoes
.Include(i => i.AMZ)
.Include(i => i.Google)
.Include(i => i.Template)
.Include(i => i.Sheet)
.Include(i => i.List)
.Include(i => i.Operation)
.FirstOrDefaultAsync().Result;
//Console.WriteLine(JsonConvert.SerializeObject(sheetInfo));
var row = new List<string>();
row.Add("First Add");
row.Add("Second column");
row.Add("Third one");
var append = new Append();
append.values.Add(row);
append.values.Add(row);
append.values.Add(row);
Console.WriteLine(JsonConvert.SerializeObject(append));
gapi.Insert(sheetInfo, append);
Console.WriteLine("Hello World!");
Console.ReadKey();
}
}
“价值观”:[
[
“第一次添加”,
“第二栏”,
“第三个”
],
[
“第一次添加”,
“第二栏”,
“第三个”
]
]
}var content=newstringcontent(JsonConvert.SerializeObject(updateBatch)) 这是一个简单的解决方案。当然,除了FormUrlEncodedContent之外,我还必须使用StringContent 我在StackOverflow中找到FormUrlEncodedContent,因为我的VisualStudio IntelliSense没有找到StringContent(或者我错过了键“new”)。。。我开始认为没有这样的课程。哦大失误
public class Append
{
public List<List<string>> values { get; set; }
public Append()
{
values = new List<List<string>>();
}
}
public bool Insert(SheetInfo sheetInfo, Append append)
{
// tmp
var spreadsheetId = sheetInfo.Sheet.Id;
var range = "A2:Z5";
var acc = sheetInfo.Google;
//Console.WriteLine(values);
var contentPairs = new[]
{
new KeyValuePair<string, string>("", JsonConvert.SerializeObject(append))
};
// end tmp
var url = $"https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range}:append?valueInputOption=ROW";
Console.WriteLine(url);
var response = RequestAsync(url, acc, contentPairs).Result;
Console.WriteLine(response);
return true;
}
public async Task<string> RequestAsync(string url, GoogleAcc acc, IEnumerable<KeyValuePair<string, string>> contentPairs = null)
{
if (acc != null && acc.ExpiresAt < DateTime.Now)
await NewToken(acc);
using (var client = new HttpClient())
{
HttpResponseMessage result = null;
FormUrlEncodedContent content = null;
if (acc != null) client.DefaultRequestHeaders.Add("Authorization", $"Bearer {acc.AccessToken}");
client.DefaultRequestHeaders.Add("Accept", "application/json");
if (contentPairs != null)
{
content = new FormUrlEncodedContent(contentPairs);
result = await client.PostAsync(url, content);
}
else
{
result = await client.GetAsync(url);
}
return await result.Content.ReadAsStringAsync();
}
}
{