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

使用Google Sheets API v4将新数据插入到Google电子表格顶部

赫连睿
2023-03-14

我正在使用谷歌表单跟踪我网站上最近的订单。我想将每个新订单的详细信息添加到谷歌电子表格中,让最新的订单详细信息显示在工作表的顶部,旧的条目显示在底部。

我知道我可以在最后一行后追加新行,而不知道/使用以下代码向谷歌提供行号:

// INSERTS NEW DATA AFTER LAST ROW
ValueRange body = new ValueRange().setValues(writeData);
AppendValuesResponse appendValuesResponse =
        service.spreadsheets().values().append(spreadsheetId, range, body)
                .setValueInputOption(valueInputOption)
                .execute();

但是,这意味着新条目将添加到工作表的底部,而不是顶部。我的要求正好相反。我需要在工作表的顶部添加/附加较新的条目,并将较旧的条目移动到底部。

有没有一种方法可以通过API本机实现这一点?

共有2个答案

万俟丁雷
2023-03-14

我有一个非常相似的需求,我正在分享我是如何解决它的。

我知道我想在顶部插入的行数。我在标题下的顶部插入了空白行。我根据行数设置starIndexendIndex,并在电子表格上请求BatchUpdate。然后用值更新范围(在此调用后现在为空白)。

    log.trace("Inserting Blank Row At the Top of Sheet");

    DimensionRange dimensionRange = new DimensionRange();
    dimensionRange.setDimension("ROWS");
    dimensionRange.setStartIndex(1); // depends on your requirement
    dimensionRange.setEndIndex(10);  // depends on your requirement

    InsertDimensionRequest insertDimension = new InsertDimensionRequest();
    insertDimension.setRange(dimensionRange);

    Request insertionRequest = new Request();
    insertionRequest.setInsertDimension(insertDimension);

    BatchUpdateSpreadsheetRequest batchUpdateSpreadsheetRequest = new BatchUpdateSpreadsheetRequest();
    batchUpdateSpreadsheetRequest.setRequests(Arrays.asList(insertionRequest));

    try {
        BatchUpdateSpreadsheetResponse execute = sheets.spreadsheets()
                .batchUpdate(spreadsheetId, batchUpdateSpreadsheetRequest)
                .execute();
    } catch (IOException e) {
        log.error("Exception Occurred While Inserting Blank Row - Details: {}", e.getMessage());
        e.printStackTrace();
    }

谷歌参考文档:InsertDimensionRequest-Sheets API参考

注意:这个C#的答案帮助我得到了这个Java解决方案:https://stackoverflow.com/a/53587428/7878602

翁文康
2023-03-14

这方面没有直接的方法。操纵工作表中数据顺序的最接近机会是使用多个排序规范对范围进行排序,或使数据从底部添加到工作表中(如使用递减变量计数器10-1将ctr添加到ctr)。

 类似资料:
  • 问题内容: 案例:我的脚本返回一个数据框,该数据框需要作为新的数据行附加到现有的Google电子表格中。到目前为止,我正在通过gspread将数据框附加为多个单行。 我的代码: 有没有一种方法可以附加整个数据帧而不是多个单行? 问题答案: 我可以推荐:

  • 我有一个带有多个选项卡的Google电子表格,但我希望只有一个选项卡可以使用SSIS加载到SQL Server表中。 有可能吗?如果有,我该怎么做?

  • 我已经通过谷歌官方文档《开发者指南》API中提到的一个简单Java代码成功地在我的Google Drive帐户的现有电子表格中创建了一个新的工作表,但我想通过Java代码在我的Google Drive帐户中创建一个新的电子表格。在链接中,他们没有提到这方面的任何示例代码。我已经在Spreadservice类中看到了不同的可用方法。 如何使用Google电子表格API实现这一点?

  • 我正在使用谷歌电子表格和IFTTT做我手机的DB通话记录,这是完美的工作。现在,我正试图通过这个DB调用日志中的API在web页面中填充一个表单。每次IFTTT填充工作表时,我都希望将lastRow发送到我的API。工作表中的第一行填充有标题名称:部门、名、姓、电子邮件、电话、截止日期。 因此,我设法将数据发送到API,如下所示: 现在我需要自动化它,但我不知道如何: > 从表单元格(从lastR

  • 我很难找到将多张工作表同步到主电子表格的方法。在我的测试中,我有一个大的电子表格,上面有5个城市的地址。我正在尝试为每个城市创建一个电子表格,并能够在任何一个表格中更改数据时同步数据。因此,我将管理总体数据,5张电子表格中的每一张都将分配给其他人。这样,他们就可以在不访问所有数据的情况下更新工作表。使用内置查询或导入功能的问题是,如果用户在“城市”电子表格上进行更改,它将破坏该表格,因为数据被引用

  • 问题内容: 我正在寻找使用openpyxl将行插入电子表格的最佳方法。 实际上,我有一个电子表格(Excel 2007),该电子表格具有标题行,其后最多(数千)行数据。我希望将行插入为实际数据的第一行,因此在标题之后。我的理解是,附加功能适合于将内容添加到 结尾 的文件。 阅读有关openpyxl和xlrd(以及xlwt)的文档,除了手动循环浏览内容并将其插入新表(在插入所需行之后)之外,我找不到