<script>
//Script который нужно поправить под ваши задачи
var prms = [
{
id : "10080283",
url : "https://docs.google.com/spreadsheets/d/1teQYqhH8xzW56DdKZPPDeuayXJRX1U92PR8y4qhL6UA/edit?usp=sharing",
req : "select *"
},
];
</script>
<script>
//Script который не стоит править, если вы не понимаете, что там происходит.
var curBlock = 0; //для последовательного заполнения нескольких таблиц.
var google = {visualization: {Query: {setResponse: function(){}}}} //callback функция для получения ответа от google spreadsheets
//Генератор данных для блока таблица
function gss4tilda_createT431 (blockID, data)
{
//Заполняем заголовки таблицы
var part1="";
for(var i=0; i<data.table.cols.length; i++)
{
part1 += htmlentities(data.table.cols[i].label) + ';';
}
part1 = part1.slice(0,-1);
//Заполняем данные таблицы
var part2="";
var empty = true;
for(var i=0; i<data.table.rows.length; i++)
{
empty = true;
for(var j=0; j<data.table.rows[i].c.length; j++)
{
if(data.table.rows[i].c[j] !== null && typeof data.table.rows[i].c[j] === 'object' && data.table.rows[i].c[j].v !== null && data.table.rows[i].c[j].v !== '')
{
part2 += htmlentities(data.table.rows[i].c[j].v) + ';'
empty = false;
}
else
{
part2 += ';'
};
}
part2 = !empty ? part2.slice(0,-1) + "\n" : part2.slice(0,- data.table.rows[i].c.length);
//part2 += "\n";
}
part2 = part2.slice(0,-1);
//Очищаем блок от старых данных
$('#rec' + blockID + " table").html("");
$('#rec' + blockID + " .t431__data-part1").html(part1);
$('#rec' + blockID + " .t431__data-part2").html(part2);
t431_init(blockID);
}
//Callback функция для полуения данных от google в формате jsonp
google.visualization.Query.setResponse = function(data)
{
//Получаем ссылку на нужный блок
var blockID = prms[curBlock].id;
var blockType = $("#rec"+blockID + " div:first").attr("class");
switch (blockType) {
case 't431' :
//table
gss4tilda_createT431(blockID, data);
break;
}
//Переходим к следующему блоку или сбрасываем счетчик
if (curBlock < prms.length-1)
{
curBlock++;
getGssData();
}
else
{
curBlock = 0;
}
}
//функция запроса данных от google spreadsheets
function getGssData()
{
//Проверяем наличие всех необходимых данных
if ("id" in prms[curBlock] && "url" in prms[curBlock] && "req" in prms[curBlock])
{
//Если вместо id таблицы стоит 0, то берем таблицу из предыдущего блока
if(prms[curBlock].id==='0')
{
alert("Укажите ID таблицы, 0 временно не работает.")
//let scriptElem = document.currentScript;
//prms[curBlock].id = $(scriptElem).parents('.r').prev().attr('id').substr(3);
//$("script[src]").each(function(){
//if(~this.src.indexOf("gss4tilda"))
//prms[curBlock].id = $(this).parents('.r').prev().attr('id').substr(3);
//});
}
//TODO: Добавить проверку на наличие rec в начале ID и удаление
//получаем код таблицы из url и отправляем запрос на получение данных
var gssCode = prms[curBlock]["url"].slice( prms[curBlock]["url"].indexOf("spreadsheets/d/") + 15, prms[curBlock]["url"].indexOf("/edit?"));
$.ajax({
url: 'https://docs.google.com/a/google.com/spreadsheets/d/' + gssCode + '/gviz/tq?tq=' + encodeURIComponent( prms[curBlock].req ),
dataType : 'jsonp'
});
}
}
function htmlentities(s){ // Convert all applicable characters to HTML entities
//
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
var div = document.createElement('div');
var text = document.createTextNode(s);
div.appendChild(text);
return div.innerHTML;
}
$().ready(function(){
//сбрасываем счетчик таблиц и получаем первую таблицу
curBlock = 0;
getGssData();
})
</script>
<script>
var prms = [
{
id : "10294914",
url : "https://docs.google.com/spreadsheets/d/1teQYqhH8xzW56DdKZPPDeuayXJRX1U92PR8y4qhL6UA/edit?usp=sharing",
req : "select A, B where C='f' and B<30 order by B"
},
];
</script>
<script>
//см. код в первом примере
</script>
<script>
var prms = [
{
id : "10080283",
url : "https://docs.google.com/spreadsheets/d/1teQYqhH8xzW56DdKZPPDeuayXJRX1U92PR8y4qhL6UA/edit?usp=sharing",
req : "select *"
},
{
id : "10294914",
url : "https://docs.google.com/spreadsheets/d/1teQYqhH8xzW56DdKZPPDeuayXJRX1U92PR8y4qhL6UA/edit?usp=sharing",
req : "select A, B where C='f' and B<30 order by B"
},
{
id : "10294593",
url : "https://docs.google.com/spreadsheets/d/1Ml-V5fyeWFvk6TDzpH82fZ05RIbqirdHLzXTH8946J8/edit?usp=sharing",
req : "select B , C where B != "" order by A desc limit 5"
},
];
</script>
<script>
//см. код в первом примере
</script>