You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Chart报错咨询:轴#0的数据列不能为字符串类型

解决Google Charts报错"Data column(s) for axis #0 cannot be of type string"

问题原因

  1. 数据类型不匹配:你用getDisplayValues()获取数据时,所有单元格内容都会被转为字符串,包括Sales和Expense列的数值。Google Charts无法将字符串类型的数值识别为轴数据,因此抛出类型错误。
  2. 数据范围冗余:getRange(2, 1, ws.getLastRow(), 3)的行数参数是ws.getLastRow(),会从第2行开始取到表格最后一行,包含表头下方的空行,导致数据中混入无效空值。

修复方案

1. 修改Code.gs的数据获取逻辑

替换getDisplayValues()为getValues()(保留原始数据类型),同时修正数据范围:

function doGet(){
  return HtmlService.createTemplateFromFile("chart").evaluate();
}

function getStats(){
  const ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
  // 从第2行开始,取最后一行减1行数据(排除表头行),共3列
  return ws.getRange(2, 1, ws.getLastRow() - 1, 3).getValues();
}

2. (可选)优化日期显示格式

如果图表中日期显示不符合预期,可在Chart.html的options中添加日期格式化配置:

var options = {
  title: 'Sales and Expenses',
  curveType: 'function',
  legend: { position: 'bottom' },
  hAxis: { format: 'yyyy-MM-dd' } // 自定义日期显示格式
};

修复原理

  • getValues()返回的数组中,日期单元格会转为Date对象,数值单元格会转为Number类型,Google Charts能正确识别这些类型作为坐标轴数据。
  • 修正后的范围仅取有数据的行,避免空行干扰图表渲染。

内容的提问来源于stack exchange,提问作者Riaz Rasool

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 11:24:24