【发布时间】:2025-12-03 09:35:01
【问题描述】:
我正在尝试根据电子表格上的数据创建图表,但在管理新创建图表的横轴格式时遇到了麻烦。
我尝试使用方法“setOption('vAxis.format', 'dd/MM/YY')”,但它不起作用,显示诸如“dd/MM/YY 00:00”之类的刻度标签:00": Figure 1
如果我更改电子表格上的日期格式,以便在第二张图表上得到变形值:Figure 2
电子表格:Link
谷歌脚本代码:
function Test_format_chart() {
var ss=SpreadsheetApp.openById("1lVqL5nT1IS3T2LPrcB5QAg_03ni0JgoJgxbAWdWb0I")
var sh=ss.getSheetByName("TestSheet");
var chts=sh.getCharts();
for(var i=0;i<chts.length;i++) {
sh.removeChart(chts[i]);
}
var chartBuilder = sh.newChart();
chartBuilder.addRange(sh.getRange("A1:B25"))
.setChartType(Charts.ChartType.LINE)
.setOption('useFirstColumnAsDomain', true)
.setPosition(2, 4, 0, 0)
.setOption('title', 'My Line Chart!')
.setOption('hAxis.textStyle',{color:'#ff0000'})
.setOption('hAxis.format', 'dd/MM/YY')
sh.insertChart(chartBuilder.build());
}
请记住,前面的代码只是原始实现的简化视图。在原始项目中,我们在电子邮件中导出第二个图表,但我们看到的问题是相同的。谢谢!
--
27/09/2019 更新:
我正在尝试一种新策略,在列上使用 unixtime 格式日期,然后尝试用文字字符串替换水平轴上的值,因为 line chart documentatión 在“hAxis.ticks”选项上显示。但是我没有获得预期的结果,水平刻度标签不会随着我正在托盘中的 setOption('hAxis.ticks',....) 变化而改变。
一些代码:
function Test_format_chart() {
var ss=SpreadsheetApp.openById("1lVqL5nT1IS3T2LPrcB5QAg_03ni0JgoJgxbAWdWb0I")
var sh=ss.getSheetByName("TestSheet");
var chts=sh.getCharts();
for(var i=0;i<chts.length;i++) {
sh.removeChart(chts[i]);
}
var chartBuilder = sh.newChart();
chartBuilder.addRange(sh.getRange("A1:B25"))
.setChartType(Charts.ChartType.LINE)
.setOption('useFirstColumnAsDomain', true)
.setPosition(2, 4, 0, 0)
.setOption('title', 'My Line Chart!')
.setOption('hAxis.textStyle',{color:'#ff0000'})
.setOption('hAxis.ticks', [1568023200, 156802324900])// <--
sh.insertChart(chartBuilder.build());
}
【问题讨论】:
标签: google-apps-script google-sheets