【问题标题】:How to use Google Java Sheet API V4 to format cells as NUMBER and DATE如何使用 Google Java Sheet API V4 将单元格格式化为 NUMBER 和 DATE
【发布时间】:2016-10-26 13:44:00
【问题描述】:

问候,

我正在尝试使用 Java API V4 向我的 Google 表格添加格式。

以下代码是我对将一系列列和行格式化为具有单个整数数字的 NUMBER 类型所需的最佳理解。还有一列具有 DATE 格式。该代码不会返回任何错误,但也不会改变我工作表上的格式,因此 eash 数值和日期在每个值前面都有一个烦人的撇号,例如 '5 和 'Oct 26 2016 13:34。我一直在尝试格式化字段以删除工作表自动添加的撇号。

任何想法我做错了什么?

    public static void setProperties(String spreadsheetId, int length) throws IOException {


    List<Request> requests = new ArrayList<>();

    requests.add(new Request()
            .setRepeatCell(new RepeatCellRequest()
                    .setCell(new CellData()
                            .setUserEnteredFormat(new CellFormat().setNumberFormat(new NumberFormat().setPattern("0").setType("NUMBER"))))
                    .setRange(new GridRange()
                            .setSheetId(0)
                            .setStartRowIndex(3)
                            .setEndRowIndex(2 + length)
                            .setStartColumnIndex(3)
                            .setEndColumnIndex(22))
                    .setFields("userEnteredFormat.numberFormat")
            ));
    requests.add(new Request()
            .setRepeatCell(new RepeatCellRequest()
                    .setCell(new CellData()
                            .setUserEnteredFormat(new CellFormat().setNumberFormat(new NumberFormat().setPattern("0").setType("NUMBER"))))
                    .setRange(new GridRange()
                            .setSheetId(0)
                            .setStartRowIndex(3)
                            .setEndRowIndex(2 + length)
                            .setStartColumnIndex(24)
                            .setEndColumnIndex(24))
                    .setFields("userEnteredFormat.numberFormat")
            ));
    requests.add(new Request()
            .setRepeatCell(new RepeatCellRequest()
                    .setCell(new CellData()
                            .setUserEnteredFormat(new CellFormat().setNumberFormat(new NumberFormat().setPattern("mmm dd yyyy hh+:mm").setType("DATE"))))
                    .setRange(new GridRange()
                            .setSheetId(0)
                            .setStartRowIndex(3)
                            .setEndRowIndex(2 + length)
                            .setStartColumnIndex(23)
                            .setEndColumnIndex(23))
                    .setFields("userEnteredFormat.numberFormat")
            ));

    BatchUpdateSpreadsheetRequest batchUpdateRequest = new BatchUpdateSpreadsheetRequest()
            .setRequests(requests);
    SHEETS.spreadsheets().batchUpdate(spreadsheetId, batchUpdateRequest)
            .execute();
}




    <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-sheets</artifactId>
        <version>v4-rev21-1.22.0</version>
    </dependency>

谢谢, 联系方式

【问题讨论】:

  • 不确定这是否有帮助,但您是否检查过表格 API 的日期和 Number Formats guide
  • 是的,我在开发代码时查看了该文档。我相信这些模式是正确的。

标签: java google-sheets-api


【解决方案1】:

检查这个问题Google Sheet API V4(Java) append Date in cells,报告了类似的问题。

此外,我使用了 Google Sheet API V3 和 Google Sheet API V4,该问题在 v3 中不存在。

【讨论】:

  • 谢谢,是的,问题源于我对类型的声明。我已经为数值数据数组声明了字符串数组,因为我没有对该数据进行计算。只有1-5之间的排名。当我将类型从 String 数组更改为 Integer 数组时,撇号就消失了。同样,在添加或设置模式的代码之前,我已将日期转换为代码中的格式化字符串。如果我只是加载日期类型,那么撇号会被删除。
  • 当我使用 v4 时,我遇到了与日期类型类似的问题,但出于项目目的,我不得不回滚到 v3,巧合的是,这消除了我遇到的撇号问题。如果我必须再次使用该库,我会记住这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多