【问题标题】:Google Sheets API- How do I append new rows on TOP of table?(Android)Google Sheets API-如何在表的顶部追加新行?(Android)
【发布时间】:2018-04-03 01:15:15
【问题描述】:

在我的 Android 应用程序中,我想将一行(包含新的食品订单信息)附加到 google sheet 表的顶部。从https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append 文档看来,我只能附加到表格的底部。但我确实需要从 TOP 追加新行,我怀疑这是不可能的。
我能够使用以下代码将行附加到底部:

String ORDER_SHEET_ID = "<my speardsheet id here>";
String ORDERS_RANGE_DINING = "DiningOrders!C5:I";
//...                       
this.mService.spreadsheets().values().append(ORDER_SHEET_ID,ORDERS_RANGE_DINING, body)
.setValueInputOption("RAW").setInsertDataOption("INSERT_ROWS").execute();

是否可以将行追加到表格的顶部?如何?谢谢!

【问题讨论】:

    标签: java android google-sheets-api


    【解决方案1】:

    这是我用来插入新行的。它创建行并使用粘贴命令设置数据,因此我可以在一次 HTTP 往返中完成所有操作。或者,您可以根据需要使用第二个请求更新数据。我不确定粘贴命令是否可以插入行,但这可行。

    InsertDimensionRequest insertRow = new InsertDimensionRequest();
    insertRow.setRange(new DimensionRange().setDimension("ROWS").setStartIndex(0).setEndIndex(1).setSheetId(sheetId));
    PasteDataRequest data = new PasteDataRequest().setData("Data").setDelimiter("\t")
            .setCoordinate(new GridCoordinate().setColumnIndex(0).setRowIndex(0).setSheetId(sheetId));
    
    BatchUpdateSpreadsheetRequest r = new BatchUpdateSpreadsheetRequest().setRequests(Arrays.asList(
            new Request().setInsertDimension(insertRow),
            new Request().setPasteData(data)
            ));
    BatchUpdateSpreadsheetResponse response = this.mService.spreadsheets().batchUpdate(SHEET_ID, r).execute();
    

    【讨论】:

      【解决方案2】:

      您可以参考此thread

      如果您需要在顶部(第一行)添加新行并复制 第一行的公式然后你需要复制公式 使用getFormulas()setFormulas() 函数。你可以 如果您的电子表格有标题,请将 firstRow 的值更改为 2 例如。

      function addFirstRow() {
          var firstRow = 1;
          var sh = ss.getActiveSheet();
          var lCol = sh.getLastColumn();
          var range = sh.getRange(firstRow, 1, 1, lCol);
          var formulas = range.getFormulas();
          sh.insertRowsAfter(1, 1);
          newRange = sh.getRange(firstRow, 1, 1, lCol);
          newRange.setFormulas(formulas);
      }
      

      您也可以查看这个帖子:Having new entries show up top in google sheets.

      【讨论】:

        猜你喜欢
        • 2017-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-15
        • 2021-02-06
        • 1970-01-01
        相关资源
        最近更新 更多