【问题标题】:How to create Pivot Tables using Google Sheets API v4 for Java?如何使用适用于 Java 的 Google Sheets API v4 创建数据透视表?
【发布时间】:2016-05-30 14:18:47
【问题描述】:

任何指向示例/文档的指针,用于为使用 Google Sheets API V4 创建的电子表格创建数据透视表?

我的工作流程如下,

  1. 从所需数据源中提取数据。
  2. 创建电子表格,指定工作表属性。
  3. 将数据上传到电子表格

现在,在此之后,我正在尝试从上传到电子表格的数据创建一个数据透视表。

我拥有的数据字段是,Date、UserId、Activity_Name、Activity_Timestamp。

我要填充的 Pivot 是用户在某一天的所有活动的数量。

我可以从 API 文档中找出的极其粗略的初始代码是,

    PivotTable pivot = new PivotTable();
    GridRange pivotGridRange = new GridRange();
    pivotGridRange.setSheetId(createdSheet.getProperties().getSheetId());
    pivotGridRange.setStartColumnIndex(0);
    pivotGridRange.setEndColumnIndex(3);
    pivot.setSource(pivotGridRange);

我该如何继续? 任何帮助将不胜感激。

谢谢, 阿南德

【问题讨论】:

标签: java google-sheets pivot-table google-sheets-api


【解决方案1】:

指南文档,包括有效的示例代码(多种语言),以及该代码的 github 链接,如下: https://developers.google.com/sheets/api/guides/pivot-tables

我不知道最初发布问题时该页面是否存在,但由于搜索似乎仍然指向该帖子,我认为该链接应该有所帮助。

【讨论】:

    【解决方案2】:

    如果您想通过 v4 API 创建数据透视表,我建议首先在 UI 中创建一个数据透视表并执行电子表格.get (https://developers.google.com/sheets/reference/rest/v4/spreadsheets/get) 来检索数据透视表。检查它是如何构建的,并以类似的方式制作你的。

    数据透视表是 API 中较为复杂的部分之一,很难很好地解释。

    【讨论】:

    • 使用 Java API,setValueRenderOption = "FORMULA" 的 get 方法不返回任何内容,而 setValueRenderOption = UNFORMATTED_VALUE 或 FORMATTED_VALUE 只返回数据透视表呈现的数据。
    【解决方案3】:

    我建议你尝试查询。假设您的数据是 Sheet1,在 Sheet2 上输入:

    =QUERY(Sheet1!A1:C5,"SELECT A,COUNT(C) GROUP BY A PIVOT B",1)

    根据需要调整范围。

    测试数据样本:

    https://docs.google.com/spreadsheets/d/1ZuU-vYBbNyB0HMildyOl1E0Nagc_eRj1JyUMEK1Wleg/edit?usp=sharing

    【讨论】:

    • 谢谢 Ed,这似乎是合乎逻辑的,但是我如何将此字符串传递给服务器?
    • 我不确定我是否理解您的问题。我将我创建的测试表附加到答案中。如果这不能回答您的问题,请提供您的数据样本。
    • 您好 Ed,我的要求是通过 Java 的 Google 表格 API 以编程方式填充数据透视表。我正在寻找的是创建一个程序,该程序将从源中提取数据并填充 excel 表;并将其作为日常工作运行。我确实理解上面写的查询,并且数据与我的相似。但是,我正在寻找以编程方式完成此任务的方法。
    • 嗨,阿南德。我知道使用代码创建数据透视表的唯一方法是使用 setFormula 将查询放入电子表格中。请参阅上表的脚本编辑器中的代码。您可以使用 array.length 从导入的数据中获取最后一行 (lr)。希望这会有所帮助。
    • 这个答案误解了这个问题。问题是关于以编程方式创建一个带有可折叠部分的特殊控件,称为“数据透视表”。这些通常是使用菜单手动创建的 (Data | Pivot Table)。 pivot 作为 query 上下文中的关键字只会导致在源中垂直排列的数据在结果中水平显示。这种情况下的结果不是数据透视表。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2017-04-18
    相关资源
    最近更新 更多