SpreadsheetのGoogle Apps Script

今日も再掲載をしていきます。
前回のEUCのEncodeをGoogle版のExcelであるSpreadsheetで作ってみました。
この場合、GASを使います。
 
function EncodeGet() {
let s_name="input";
var sh =SpreadsheetApp.getActiveSpreadsheet().getSheetByName(s_name);
var rg=sh.getRange(1,2);
const st_sorce = rg.getValue();
let Enc =EncodeMain(st_sorce);
var rg=sh.getRange(2,2);
rg.setValue(Enc)
};
これが、メインのfunctionになります。
var sh =SpreadsheetApp.getActiveSpreadsheet().getSheetByName(s_name);
が、シートの指定になります。
SpreadsheetのObjectを
SpreadsheetApp.getActiveSpreadsheet()
で表しシート名で↓のようにsheetを指定します。
getSheetByName(s_name);
さらにセルは
getRange(1,2)
で指定し
読み込むときは
getValue();
書き込むときは
lsetValue(Enc)
を使います。
前回同様にEncodeの本体は

function EncodeMain(st){
let encMain="";
let n=st.length;
for(let i = 0i < ni++) {
let st_unit =st.slice(ii+1);
encMainencMainEncode1st(st_unit)
};
return encMain;
};
としました。
let n=st.length;
は文字数を求めています。
for(let i = 0i < ni++) {
let st_unit =st.slice(ii+1);
encMainencMainEncode1st(st_unit)
};
この部分は、繰り返しの構文
for を使っています。
let st_unit =st.slice(ii+1);
は1文字づつ抽出する式です。
return encMain;
は、関数の結果を返す式です。
実際にEncodeする関数は

function  Encode1st(st){
let n=453;
let m=17;
let y=0;
let x=0;

for(let i = 1i <= ni++) {
for(let j = 2j <= mj++) {
let s_name="EUC";
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(s_name);
var rg=sh.getRange(i,j);
let cv = rg.getValue();
if (cv==st) {
 y=i;
 x=j;

 }else{
};
};
};
let s1 = "0123456789ABCDEF";
let s2 = "%";
var rg=sh.getRange(y,1);
let u1 = rg.getValue();
let u2 = u1.slice(02);
let u3 = u1.slice(23);
let u4 = s1.slice(x-2x-1);
let Encode = s2 + u2 + s2 + u3 + u4
return Encode;
};
 
if (cv==st) {
 y=i;
 x=j;

 }else{
};
は、ifによる条件分岐です。
GASでは、変数の定義があいまいなことと処理速度が遅い点が、難しいかと
 
2022年8月18日記載 2022年9月18日改訂
 
台風だいぶ近づいてます。
明日は、ほんとに危ないです。
今晩にも九州上陸するみたいです。