[英]Numberformat Google Spreadsheet API v4 Java
我正在阅读Java快速入门中所述的Google Spreadsheet。
https://developers.google.com/sheets/quickstart/java
快速入门介绍了如何从给定范围读取数据
.....
String range = "Class Data!A2:E";
ValueRange response = service.spreadsheets().values()
.get(spreadsheetId, range)
.execute();
List<List<Object>> values = response.getValues();
NumberFormat nf = NumberFormat.getInstance(Locale.GERMAN);
for (int i = 1; i < values.size(); i++) {
List row = values.get(i);
double l1 = nf.parse(row.get(1).toString()).doubleValue();
....
如您所见,我正在从响应中读取双精度值
我期望双精度值有专用的格式(例如12,34而不是12.34)
我可以将参数传递给期望的数字格式吗? 就像是:
service.spreadsheets().values().get(spreadsheetId, range).myNumberFormat("##,#####").execute()
问候
麦可
默认情况下,您从电子表格获得的响应已经按照电子表格中的方式进行了格式化。 您对nf.parse(..)
调用已从该格式化版本转换为本机Java类型,因此您丢失了格式化。
如果直接需要原始值(因此无需在本地进行解析),则可以将valueRenderOption
设置为UNFORMATTED_VALUE
。 有关更多信息,请参见此样本 。
我不太清楚您要问的是什么问题,因为您的代码示例已经获取了格式化的版本,并且您正在通过解析显式删除该格式。
如果您想要电子表格中尚未包含的特定类型的格式,请检索原始值(使用UNFORMATTED_VALUE valueRenderOption),然后在本地使用NumberFormat转换为该格式。 或者,在电子表格中设置所需的格式,然后只检索值,而不重新解析它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.