JSFiddle - React, Tailwind, and code Playground
HTML
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="utf-8" />
<title>V5 - Chart</title>
<script src="https://www.gstatic.com/charts/loader.js"></script>
<style>
#chart_div { width: 800px; height: 400px; }
</style>
</head>
<body>
<h2>Version 5 — 圖表(商品總數量 / 商品名稱)</h2>
<div>
<label>查詢(例如 group by 商品名稱):</label>
<input id="q" style="width:60%" value="select C, sum(D) group by C"/>
<button id="run">畫圖</button>
</div>
<div id="chart_div">讀取中...</div>
<script>
// 請替換成你的試算表 ID 與工作表名稱
var SHEET_ID = "1QScI5d56Kh-LGywY4WR6EvRGPcalFQYUAdqMxbFVDvk";
var SHEET_NAME = "工作表1"; // 或你自己的工作表名稱
var baseUrl = 'https://docs.google.com/spreadsheets/d/' + SHEET_ID + '/gviz/tq?sheet=' + encodeURIComponent(SHEET_NAME);
google.charts.load('current', { packages: ['corechart'] });
google.charts.setOnLoadCallback(init);
function init() {
document.getElementById('run').addEventListener('click', drawChart);
drawChart(); // 初次自動畫一次
}
function drawChart() {
var q = document.getElementById('q').value;
var query = new google.visualization.Query(baseUrl);
query.setQuery(q);
query.send(function(response) {
if (response.isError()) {
document.getElementById('chart_div').innerText = "Query 錯誤:" + response.getMessage();
return;
}
var data = response.getDataTable();
// 如果第一行是 header OK,直接畫圖
var options = {
title: '各商品總數量(sum of 數量)',
legend: { position: 'none' },
hAxis: { title: data.getColumnLabel(0) },
vAxis: { title: '總數量' }
};
var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
chart.draw(data, options);
});
}
</script>
</body>
</html>