Мне бы конечно хотелось, чтобы данные залетали одновременно со всех вкладок. но при этом сохранялось название вкладки.
Нашел в старой ветке пример с fetch он вроде как работает, но если делать по первому варианту без fetch, то внутрь гугл фунции невозможно передать что-то (например название вкладки). от fetch нужно как-то избавиться, чтобы можно было запускать скрипт с рабочего стола...
<div id="test"></div>
<div id="test2"></div>
<script>
(async function main() {
try {
var idfromURL="16gDZVsB8FOIxrsFKbkbBNWC37lPUAfKOGf-rCVxeOmY";
var sheetsWeNeed =["system","parts","goods","images","GD-images"];
var dataURL=" ";
for (var im=0; im<sheetsWeNeed.length; im++) {
const response = await fetch("https://docs.google.com/spreadsheets/d/16gDZVsB8FOIxrsFKbkbBNWC37lPUAfKOGf-rCVxeOmY/gviz/tq?sheet="+sheetsWeNeed[im]+"&headers=1");
const text = await response.text();
const getData = new Function(`return new Promise(setResponse => {
const google = { visualization: { Query: { setResponse } } };
${text}
})`);
const data = await getData();
/* вывод в консоль и на страницу */
//console.log(data.table.cols);
for (var il=0; il<data.table.rows.length; il++) {
var fields = Object.create(null);
for (var ik=0; ik<data.table.cols.length; ik++) {
if(data.table.rows[il].c[ik]!=undefined && data.table.rows[il].c[ik].v!=null ){
if(data.table.cols[ik].label=="id"){data.table.cols[ik].label="title"}
if(data.table.cols[ik].label=="name"){data.table.cols[ik].label="caption"}
if(sheetsWeNeed[im]=="images" || sheetsWeNeed[im]=="GD-images" ){ fields.type="image/jpeg" }
if( sheetsWeNeed[im]=="GD-images" ){ data.table.rows[il].c[ik].v="https://drive.google.com/uc?export=download&confirm=no_antivirus&id="+data.table.rows[il].c[ik].v }
if(data.table.cols[ik].label=="tags" && sheetsWeNeed[im]=="parts"){data.table.rows[il].c[ik].v=data.table.rows[il].c[ik].v+" $:/TOC"}
if(data.table.cols[ik].label=="tags" && sheetsWeNeed[im]=="goods"){data.table.rows[il].c[ik].v=data.table.rows[il].c[ik].v+" $:/Note"}
//console.log(currSheet);
//fields[data.table.cols[ik].label]=data.table.rows[il].c[ik].v;
document.getElementById('test2').innerHTML=(sheetsWeNeed[im]+" "+data.table.cols[ik].label +" __ " +data.table.rows[il].c[ik].v)
}
//if($tw.browser) {$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getModificationFields(),fields,$tw.wiki.getCreationFields()))};
}
}
// pre.textContent = JSON.stringify(data, null, " ");
}} catch(error) {
//pre.textContent = error.message;
console.error(error);
}
})();
</script>