【问题标题】:Google Sheet API v4 insert new rowGoogle Sheet API v4 插入新行
【发布时间】:2017-02-08 11:36:13
【问题描述】:

我使用 Google Sheet API v4,我想在我的工作表中插入新行。 我试过https://developers.google.com/sheets/api/guides/values#appending_values 但这样只需插入数据,我想将数据添加到特定列,如下所示:Is there a way to add a row on a Google Spreadsheet without OAuth using java? 这是一个如何使用 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 做同样的事情。

【问题讨论】:

    标签: android google-sheets


    【解决方案1】:

    按照此快速入门设置您的 android 项目以使用 Google 电子表格 API v4 https://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&lt;String&gt; doInBackground(Void... params){} 中调用insertDataToApi()

    【讨论】:

    【解决方案2】:

    向 go​​ogle sheet 添加行,在 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());
    
        }
    

    【讨论】:

      【解决方案3】:

      '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()
      

      【讨论】:

      • 如果可以的话,最好是英语。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-03
      • 1970-01-01
      • 2017-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多