谷歌表格 API v4 插入新行



我使用Google Sheet API v4,我想在我的工作表中插入新行。我试过 https://developers.google.com/sheets/api/guides/values#appending_values但这样只需插入数据,我想将数据添加到特定列,如下所示:有没有办法使用 java 在没有 OAuth 的情况下在 Google 电子表格上添加一行?这是如何使用 API v3 执行此操作的示例

    row.getCustomElements().setValueLocal("id", "21");
    row.getCustomElements().setValueLocal("type", si.getType().toString());
    row.getCustomElements().setValueLocal("longitude", String.valueOf(si.getLongitude()));
    row.getCustomElements().setValueLocal("latitude", String.valueOf(si.getLatitude()));
    row.getCustomElements().setValueLocal("last_maint", String.valueOf(si.getLast()));
    row.getCustomElements().setValueLocal("inst_date", String.valueOf(si.getInst()));
    row = service.insert(listFeedUrl, row);

如何使用 api v4 做同样的事情。

按照此快速入门设置您的安卓项目以使用 Google 电子表格 API v4https://developers.google.com/sheets/api/quickstart/android

设置完成后,您阅读以使用 API。

插入新行的代码

MainActivity,在private class MakeRequestTask extends AsyncTask<Void, Void, List<String>> 添加insertDataToApi()功能

        private boolean insertDataToApi() throws IOException{
        String spreadsheetId = "your_spreadsheet_id";
        String range = "MySheet!A1:C"; // A1:C refers to the 1st column of "MySheet", similarlly B1:B 2nd column. For more understanding https://developers.google.com/sheets/api/guides/concepts
        List<Object> row1 = new ArrayList<>();
        row1.add("Name");
        row1.add("Rollno");
        row1.add("Class");
        // similarly create more rows with data
        List<List<Object>> vaules = new ArrayList<>();
        vaules.add(row1);
        ValueRange valueRange = new ValueRange();
        valueRange.setMajorDimension("ROWS");
        valueRange.setValues(vaules);
        UpdateValuesResponse response = this.mService.spreadsheets().values()
                .update(spreadsheetId, range, valueRange)
                .setValueInputOption("RAW")
                .execute();
        Log.e("Update_response", response.toString());
        return true;
    }

现在只需在protected List<String> doInBackground(Void... params){}中致电insertDataToApi()

将行添加到谷歌工作表,在 C#、Google.Api.Sheet v4 中工作

public void SaveAccount(String userName, String password) {
        GetCredential();
        // Create Google Sheets API service.
        var service = new SheetsService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = ApplicationName,
        });
        // Define one row
        List<IList<Object>> values = new List<IList<object>>();
        IList<Object> obj = new List<Object>();
        obj.Add(userName);
        obj.Add(password);
        values.Add(obj);
        // Add Batch 
        SpreadsheetsResource.ValuesResource.AppendRequest request =
           service.Spreadsheets.Values.Append(new ValueRange() { Values = values }, idHBusAccount, rangeHBusAccount);
        request.InsertDataOption = SpreadsheetsResource.ValuesResource.AppendRequest.InsertDataOptionEnum.INSERTROWS;
        request.ValueInputOption = SpreadsheetsResource.ValuesResource.AppendRequest.ValueInputOptionEnum.USERENTERED;
        var response = request.Execute();
        // Console.WriteLine(response.ToString());
    }

'OBTIENE EL ID DEL ARCHIVO REGISTRO EN INTERNET编号((

        ' If modifying these scopes, delete your previously saved credentials
        ' at ~/.credentials/sheets.googleapis.com-dotnet-quickstart.json
        Dim Scopes As String = SheetsService.Scope.SpreadsheetsReadonly
        Dim ApplicationName As String = "Google Sheets API .NET Quickstart"
        Dim credential2 As UserCredential
        Dim stream2 = New FileStream(My.Application.Info.DirectoryPath + "client_secret.json", FileMode.Open, FileAccess.Read)
        Dim credPath As String = My.Application.Info.DirectoryPath + ""
        credential2 = GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream2).Secrets, {Scopes}, "user", CancellationToken.None, New FileDataStore(credPath, True)).Result
        stream2.Close()
        ' Create Google Sheets API service.
        Dim Service = New SheetsService(New BaseClientService.Initializer() With {.HttpClientInitializer = credential2, .ApplicationName = ApplicationName})
        Dim ranges As IList
        Dim includeGridData As Boolean = False
        Dim request2 As SpreadsheetsResource.GetRequest = Service.Spreadsheets.Get(IDREGISTRO)
        request2.Ranges = ranges
        request2.IncludeGridData = includeGridData
        'TODOS LOS DATOS
        Dim response As Data.Spreadsheet = request2.Execute()
        Dim totalrows = response.Sheets(0).Properties.GridProperties.RowCount
        Dim totalcolumsn = response.Sheets(0).Properties.GridProperties.ColumnCount
        Dim Hoja = response.Sheets(0).Properties.Title
        Dim Range As String = Hoja + "!A2:" + "L" + totalrows.ToString
        ' Define request parameters.
        Dim request As SpreadsheetsResource.ValuesResource.GetRequest = Service.Spreadsheets.Values.Get(IDREGISTRO, Range)
        Dim response2 As ValueRange = request.Execute()
        Dim values = response2.Values
        ' The ID of the spreadsheet to add row.
        Dim spreadsheetId As String = IDREGISTRO

        Dim r1 As String = Hoja & "!A" & totalrows & ":L" & totalrows
        ' Define one row
        Dim values2 As List(Of IList(Of Object)) = New List(Of IList(Of Object))()
        Dim obj As IList(Of Object) = New List(Of Object)()
        obj.Add(dt)
        obj.Add(TextBox1.Text)
        obj.Add(TextBox2.Text)
        obj.Add(TextBox6.Text)
        obj.Add(TextBox7.Text)
        obj.Add(TextBox3.Text)
        obj.Add(TextBox5.Text)
        obj.Add(TextBox4.Text)
        obj.Add(combobox1.Text)
        obj.Add(DIRMAC)
        obj.Add("NO")
        obj.Add(My.Application.Info.AssemblyName)
        values2.Add(obj)
        Dim valueInputOption As SpreadsheetsResource.ValuesResource.AppendRequest.ValueInputOptionEnum = SpreadsheetsResource.ValuesResource.AppendRequest.ValueInputOptionEnum.RAW
        Dim insertDataOption As SpreadsheetsResource.ValuesResource.AppendRequest.InsertDataOptionEnum = SpreadsheetsResource.ValuesResource.AppendRequest.InsertDataOptionEnum.INSERTROWS
        Dim request4 As SpreadsheetsResource.ValuesResource.AppendRequest = Service.Spreadsheets.Values.Append(New ValueRange With {.Values = values2}, spreadsheetId, r1)
        request4.ValueInputOption = valueInputOption
        request4.InsertDataOption = insertDataOption
        Dim response4 = request4.Execute()

最新更新