function
SaveSS
()
//OK 2025/09/02
{
var
spreadsheet
=
SpreadsheetApp
.
getActiveSpreadsheet
();
spreadsheet
.
toast
(
'Creation et sauvegarde image'
,
'Automation'
, -
1
);
var
sheetSS
=
spreadsheet
.
getSheetByName
(
"SS"
);
var
dateSS
=
sheetSS
.
getRange
(
'B1'
).
getValue
();
dateSS
=
Utilities
.
formatDate
(
dateSS
,
"GMT+23:00"
,
"yyyy-MM-dd"
);
var
voieSS
=
sheetSS
.
getRange
(
'C1'
).
getValue
();
var
sensSS
=
sheetSS
.
getRange
(
'D1'
).
getValue
();
var
lastRSS
=
sheetSS
.
getLastRow
();
if
(
lastRSS
<
3
)
{
spreadsheet
.
toast
(
'Pas de données'
,
'Automation'
, -
1
);
return
;
};
var
rangeSS
=
sheetSS
.
getRange
(
1
,
1
,
lastRSS
,
4
);
var
dataSS
=
rangeSS
.
getValues
();
dataSS
[
0
][
1
] =
dateSS
;
var
fcSS
=
rangeSS
.
getFontColors
();
var
bgSS
=
sheetSS
.
getRange
(
1
,
1
,
lastRSS
,
1
).
getBackgrounds
();
var
fsSS
=
rangeSS
.
getFontSizes
();
var
widthIMG
=
0
;
var
cwSS
= [];
for
(
var
i
=
1
;
i
<=
4
;
i
++)
{
widthIMG
+=
sheetSS
.
getColumnWidth
(
i
)*
0.8
;
cwSS
.
push
(
sheetSS
.
getColumnWidth
(
i
));
};
var
heightIMG
=
14
;
var
rhSS
= [];
for
(
var
k
=
1
;
k
<=
lastRSS
;
k
++)
{
heightIMG
+=
sheetSS
.
getRowHeight
(
k
)+
2
;
rhSS
.
push
(
sheetSS
.
getRowHeight
(
k
));
fsSS
.
push
(
sheetSS
.
getRange
(
k
,
1
).
getFontSize
);
}
var
html
=
"<table border='1'>"
spreadsheet
.
toast
(
'Creation HTML'
,
'Automation'
, -
1
);
//Creation de la table
for
(
i
=
0
;
i
<
lastRSS
;
i
++)
{
html
+=
"<tr>"
for
(
var
j
=
0
;
j
<
4
;
j
++)
{
//html += "<td>" + dataSS[i][j] + "</td>";
html
+=
"<td style='height:"
+
rhSS
[
i
]+
"px;width:"
+
cwSS
[
j
]*
0.8
+
"px;background:"
+
bgSS
[
i
][
0
] +
";color:"
+
fcSS
[
i
][
j
] +
";font-size:"
+
fsSS
[
i
]+
"px;'>"
+
dataSS
[
i
][
j
] +
"</td>"
;
//html += "<td style='height:"+sheetSS.getRowHeight(i+1)+"px;width:"+ sheetSS.getColumnWidth(j+1)*0.8 + "px;background:" + bgSS[i][j] + ";color:" + fcSS[i][j] + ";font-size:"+fsSS[i][j]+"px;'>" + dataSS[i][j] + "</td>";
}
html
+=
"</tr>"
;
}
html
+=
"</table>"
spreadsheet
.
toast
(
'Creation image'
,
'Automation'
, -
1
);
//Creation de l'image
const
img
=
Charts
.
newTableChart
().
setDataTable
(
Charts
.
newDataTable
().
addColumn
(
Charts
.
ColumnType
.
STRING
,
''
).
addRow
([
html
]).
build
()).
setOption
(
'allowHtml'
,
true
).
setDimensions
(
widthIMG
,
heightIMG
).
build
();
spreadsheet
.
toast
(
'sauvegarde image'
,
'Automation'
, -
1
);
//Sauvegarde de l'image
const
blob
=
img
.
getAs
(
'image/png'
);
blob
.
setName
(
"TOP "
+
dateSS
+
" "
+
voieSS
+
" "
+
sensSS
+
".png"
);
spreadsheet
.
toast
(
'nom du blob'
,
'Automation'
, -
1
);
const
folder
=
DriveApp
.
getFolderById
(
'xxxxx'
);
folder
.
createFile
(
blob
);
spreadsheet
.
toast
(
'ecriture'
,
'Automation'
, -
1
);
};
I've tried to make it as light as possible with
html += "<td>" + dataSS[i][j] + "</td>";
but it didn't worked (still working with manual launch). It always stops at
const
folder
=
DriveApp
.
getFolderById
(
'xxxxx'
);
even if I place it at the beginning of the script.
Thank you for reading me.
PS: SS stands for ScreenShot :D