繁体   English   中英

Numberformat Google Spreadsheet API v4 Java

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM