如何使用 Google Java Sheet API V4 将单元格格式化为 NUMBER 和 DATE
How to use Google Java Sheet API V4 to format cells as NUMBER and DATE
问候,
我正在尝试使用 Java API V4 向我的 Google 工作表添加格式。
以下代码是我对将一系列列和行格式化为具有单个整数数字的 NUMBER 类型所需内容的最佳理解。还有一列采用 DATE 格式。该代码没有 return 任何错误,但也没有改变我的 sheet 上的格式,因此 eash 数值和日期在每个值前面都有一个烦人的撇号,例如 '5 和 'Oct 26 2016 13:34。我一直在尝试格式化字段以删除 sheet 自动添加的撇号。
知道我做错了什么吗?
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>
谢谢,
康特
检查此问题 ,其中报告了类似的问题。
另外,我用过Google Sheet API V3 和 Google Sheet API V4,这个问题不存在于v3.
问候,
我正在尝试使用 Java API V4 向我的 Google 工作表添加格式。
以下代码是我对将一系列列和行格式化为具有单个整数数字的 NUMBER 类型所需内容的最佳理解。还有一列采用 DATE 格式。该代码没有 return 任何错误,但也没有改变我的 sheet 上的格式,因此 eash 数值和日期在每个值前面都有一个烦人的撇号,例如 '5 和 'Oct 26 2016 13:34。我一直在尝试格式化字段以删除 sheet 自动添加的撇号。
知道我做错了什么吗?
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>
谢谢, 康特
检查此问题
另外,我用过Google Sheet API V3 和 Google Sheet API V4,这个问题不存在于v3.