清翔会
適用後は通常通り手で修正できます
初回のみExcelデータをSupabaseにアップロードします。
シフトデータを端末に保存します。最大5件まで保持。
LINEなどからコピーしたテキストをそのまま貼り付けてください。
例:「向田 6月3日」「島田6/4」「荒木 6月3日〜5日」
スプレッドシートの公開ページ(pubhtml)からシフトデータを取り込みます。
(function(){var f=document.querySelector('iframe');var d=f?f.contentDocument:document;var w=f?f.contentWindow:window;var t=d.querySelector('table');if(!t){alert('テーブルが見つかりません');return;}var rows=t.querySelectorAll('tr');var CM={'rgb(0, 100, 17)':'esca','rgb(112, 48, 160)':'r','rgb(255, 153, 255)':'wiz','rgb(255, 0, 102)':'luminas','rgb(0, 0, 204)':'chaya','rgb(133, 32, 12)':'asano','rgb(0, 255, 0)':'chiryu','rgb(0, 255, 255)':'komaki','rgb(255, 204, 153)':'yagoto','rgb(180, 167, 214)':'omori','rgb(255, 255, 0)':'kyoto','rgb(67, 67, 67)':'ginza'};var TS={'休み':'yasumi','有給':'yukyu','代休':'daikyu','産休':'yasumi'};var ss=-1,nr=-1;for(var i=0;i<5;i++){var cs=rows[i].querySelectorAll('td');var ci=0;for(var j=0;j<cs.length;j++){var cp=parseInt(cs[j].colSpan)||1;if(cs[j].textContent.trim()==='清翔会'){ss=ci;nr=i;break;}ci+=cp;}if(ss>=0)break;}if(ss<0){alert('清翔会が見つかりません');return;}var cn={};var ncs=rows[nr].querySelectorAll('td');var ci2=0;for(var j2=0;j2<ncs.length;j2++){var cp2=parseInt(ncs[j2].colSpan)||1;if(ci2>ss+1&&ci2<ss+40){var nm=ncs[j2].textContent.trim();if(nm&&nm!=='休診日')cn[ci2]=nm;}ci2+=cp2;}var ds=nr+1;for(var dr=ds;dr<rows.length;dr++){if(rows[dr].querySelector('td')&&rows[dr].querySelector('td').className.includes('freezebar')){ds=dr+1;}else break;}var R={};for(var dr2=ds;dr2<ds+35;dr2++){if(dr2>=rows.length)break;var dcs=rows[dr2].querySelectorAll('td');var ci3=0;var dn='';var sh=[];for(var j3=0;j3<dcs.length;j3++){var cp3=parseInt(dcs[j3].colSpan)||1;if(ci3===ss)dn=dcs[j3].textContent.trim();if(cn[ci3]){var bg=w.getComputedStyle(dcs[j3]).backgroundColor;var tx=dcs[j3].textContent.trim();var cl=null;if(tx&&TS[tx])cl=TS[tx];else if(tx==='訪問1'||tx==='訪問2')cl='houmon';else if(bg&&bg!=='rgb(255, 255, 255)')cl=CM[bg]||null;if(cl){var mm='';if(tx==='+')mm='+';else if(tx==='訪問1')mm='訪問1';else if(tx==='訪問2')mm='訪問2';else if(tx==='±')mm='±';sh.push({d:cn[ci3],c:cl,m:mm});}}ci3+=cp3;}var day=parseInt(dn);if(day>=1&&day<=31&&sh.length>0)R[day]=sh;}var out=JSON.stringify(R);console.log(out);navigator.clipboard.writeText(out).then(function(){alert('コピーしました('+Object.keys(R).length+'日分)')}).catch(function(){prompt('以下をコピーしてください:',out)});})()
適用後は通常通り手で修正できます
LINEなどからコピーしたテキストを貼り付けてください。
日付をタップして入力。もう一度タップで解除。