Google Apps脚本 - 图表服务:如何格式化数字和日期

时间:2015-12-28 18:47:57

标签: google-apps-script pygooglechart

我设法使用谷歌电子表格中的数据创建了一个数据表和一个简单的图表。这是代码:

 function doGet() {
   var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1x9g2N5gFCAeU6DkS-BYiB6womhsNfT3kPH2L22ZI3iM/edit#gid=973420299");
   var sheetDados = ss.getSheetByName("Receita e Investimento");
   var dataTableValeus = sheetDados.getRange(16, 1, 31, 3).getValues();



   var data = Charts.newDataTable()
       .addColumn(Charts.ColumnType.DATE, "Data")
       .addColumn(Charts.ColumnType.NUMBER, "Cost")
       .addColumn(Charts.ColumnType.NUMBER, "Revenue");

   for(var linha = 0, len = dataTableValeus.length; linha < len; linha++){
     if (dataTableValeus[linha][0] != ""){
       data.addRow(dataTableValeus[linha]);
     }
   }

   data.build();

   var chart = Charts.newAreaChart()
       .setDataTable(data)
       .setRange(0, 40)
       .setTitle("Revenue and Cost")
       .build();

   var uiApp = UiApp.createApplication().setTitle("My Chart");
   uiApp.add(chart);
   return uiApp;
 }

这是最终产品:Simple Chart

我的问题是更改Axis上日期和数字的格式。

在X轴上它现在读到“12 de nov de 2015”。我想将其更改为12 / nov / 2015

在Y轴上它现在读取“7.500”,“15.000”...我想把它改为“R $ 7.500”,“R $ 15.500”。

我该如何格式化?!

这是spreadSheet

的链接

1 个答案:

答案 0 :(得分:0)

在我发布问题之后,我确实找到了这个简短的解决方案。这是答案。

方法Charts.setOption(option, value)可以对您的图表进行大量自定义。

以下是该方法的description,以下是对其接受的parameters的说明。

我的最终代码如下:

 function doGet() {
   var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1x9g2N5gFCAeU6DkS-BYiB6womhsNfT3kPH2L22ZI3iM/edit#gid=973420299");
   var sheetDados = ss.getSheetByName("Receita e Investimento");
   var dataTableValeus = sheetDados.getRange(16, 1, 31, 3).getValues();



   var data = Charts.newDataTable()
       .addColumn(Charts.ColumnType.DATE, "Data")
       .addColumn(Charts.ColumnType.NUMBER, "Cost")
       .addColumn(Charts.ColumnType.NUMBER, "Revenue");

   for(var linha = 0, len = dataTableValeus.length; linha < len; linha++){
     if (dataTableValeus[linha][0] != ""){
       data.addRow(dataTableValeus[linha]);
     }
   }

   data.build();


   var chart = Charts.newAreaChart()
       .setDataTable(data)
       .setTitle("Revenue and Cost")
       .setOption("vAxis.format", "currency")
       .setOption("hAxis.format", "d/MMM/y")
       .setOption("legend.position", "top")
       .setDimensions(600, 300)
       .build();

   var uiApp = UiApp.createApplication().setTitle("My Chart");
   uiApp.add(chart);
   return uiApp;
 }