当前位置: 首页 > 知识库问答 >
问题:

Google Sheets API.追加方法问题。C#

柳修平
2023-03-14

http://skrinshoter.ru/s/260320/rW7vMcEV?a

当我试图在电子表格中添加时,我遇到了一个问题。

我的节目。反恐精英:

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();
    }
}      

追加模型。反恐精英:

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;
    }       

RequestAsync方法:

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();
        }
    }

问题是什么查询参数'名称'???没有我自己指定的任何查询参数“名称”。

当我指定“spreadsheetId”、“range”和“valueInputOption”时,通过“尝试此API”,所有这些都可以正常工作-https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append

请求机构:

{

“值”:[[“第一次添加”、“第二列”、“第三列”]、[“第一次添加”、“第二列”、“第三列”]]

共有1个答案

弘浩瀚
2023-03-14

var content=newstringcontent(JsonConvert.SerializeObject(updateBatch));

这是一个简单的解决方案。我必须使用StringContent除了FormUrlEncodedContent当然!

我在StackOverflow中找到FormUrlEncodedContent,因为我的VisualStudio IntelliSense没有找到StringContent(或者我错过了键“new”)。。。我开始认为没有这样的课程。哦大失误!

 类似资料:
  • 在我的Android应用程序,我想追加一行(与新的食品订单信息)到谷歌表格的顶部。从https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append留档听起来我只能追加到表的底部。但是我真的需要从顶部追加新行,我怀疑这是不可能的。 我能够使用以下代码将行追加到底部: 是否可以将该行附加到表的顶

  • Akka使用 GitHub Issues作为其问题跟踪系统。 浏览 Tickets 在提交一张ticket之前,请检查现有的Akka tickets是否在早些时候报告了同样的问题。非常欢迎你在现有的ticket中发表评论,尤其是当你有可以分享的重复性测试用例的时候。 路线图 请参看Akka路线图,以找出即将发行的Akka版本中的总体主题。 创建ticket 请包括 Scala 和Akka的版本及相

  • 在我看来,GoogleSheetsAPI的append方法(用于从程序向GoogleSheet添加数据的方法)需要一个2d数组。Sam Berlin在这里似乎说了很多Google Sheet API批量更新问题。我想知道是否有人知道这是为什么?

  • 我想使用方法中的中的样式附加特定文本但有一个问题 我想输出应该是(对于我使用粗体文本的样式) 没有样式没有样式 但实际输出是 没有样式没有样式 它会将样式应用于以后添加的所有文本。那么,解决方法是什么呢?

  • 好的,我有一个课堂作业,为老师写的一个石头,纸,剪刀程序创建3个预先确定的方法。但是,当我运行程序时,它会连续多次运行这些方法。我把代码看了好几遍,还是弄不明白问题所在。 下面是老师提供的部分课程: 以下是该程序的示例会话: 欢迎来到石头,纸,剪刀! 你想打几局?1输入你的选择:岩石电脑选择纸张输入你的选择:岩石输入你的选择:岩石电脑赢!

  • 本文向大家介绍javascript进行数组追加方法小结,包括了javascript进行数组追加方法小结的使用技巧和注意事项,需要的朋友参考一下 javascript中给数组加元素是一个非常简单的问题,javascript本身就提供了大量这类函数,我们可以使用js自带函数快速给数组增加元素了,本文就javascript进行数组追加的方法做出如下小结。 以前常用的是arr.concat(arr2)这种