表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
15/32

Googleスプレッドシートの読み書きしたい! → doPost,doGetで読み書きするといいらしいっすよ

挿絵(By みてみん)


土曜日ガッツリやってようやくできた。GAS連携。

https://chatgpt.com/share/e/670127e2-cf58-8013-b6c5-3708e4389862


https://chatgpt.com/share/e/670127f3-514c-8013-aa78-bdfbc0320efc


http://sukidukinn.blog/wp-content/uploads/2024/10/20241005_CardMasterAI.zip

こちら、実際に動くGAS連携バックアップ


↓長いけど、GASのコード

function doGet(e) {

try {

// クエリパラメータから値を取得

var sheetId = e.parameter.sheetId || '※自分自身のシートId';

var sheetName = e.parameter.sheetName || 'シート1';

var range = e.parameter.range || null;


var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName);


if (!sheet) {

return ContentService.createTextOutput(JSON.stringify({ success: false, error: '指定されたシートが見つかりません' })).setMimeType(ContentService.MimeType.JSON);

}


var values;

if (range) {

var dataRange = sheet.getRange(range);

values = dataRange.getValues();

} else {

values = sheet.getDataRange().getValues();

}


return ContentService.createTextOutput(JSON.stringify({ success: true, data: values })).setMimeType(ContentService.MimeType.JSON);


} catch (error) {

return ContentService.createTextOutput(JSON.stringify({ success: false, error: error.message })).setMimeType(ContentService.MimeType.JSON);

}

}


function doPost(e) {

try {

Logger.log("Received POST request: " + JSON.stringify(e));


// POSTデータをパース

var jsonData = JSON.parse(e.postData.contents);

var operation = jsonData.operation || "append";

var data = jsonData.values;


// 'sheetId' を取得(指定がない場合はデフォルトのIDを使用)

var sheetId = jsonData.sheetId || "※自分自身のシートId";

// 'sheetName' を取得(指定がない場合はデフォルトのシート名を使用)

var sheetName = jsonData.sheetName || "シート1";


// スプレッドシートにアクセス

var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName);


// シートが存在しない場合のエラーハンドリング

if (!sheet) {

return ContentService

.createTextOutput(JSON.stringify({ success: false, error: "指定されたシートが見つかりません" }))

.setMimeType(ContentService.MimeType.JSON);

}


if (operation === 'append') {

if (data && Array.isArray(data)) {

// データを行ごとに追加

for (var i = 0; i < data.length; i++) {

Logger.log("Appending row: " + JSON.stringify(data[i]));

sheet.appendRow(data[i]);

}

return ContentService

.createTextOutput(JSON.stringify({ success: true }))

.setMimeType(ContentService.MimeType.JSON);

} else {

Logger.log("Invalid data format: " + JSON.stringify(data));

return ContentService

.createTextOutput(JSON.stringify({ success: false, error: "Invalid data format" }))

.setMimeType(ContentService.MimeType.JSON);

}

} else if (operation === 'update') {

if (data && Array.isArray(data)) {

// シートの内容をクリア

sheet.clearContents();


// データを最初の行から挿入

sheet.getRange(1, 1, data.length, data[0].length).setValues(data);


Logger.log("Sheet updated with new data.");

return ContentService

.createTextOutput(JSON.stringify({ success: true }))

.setMimeType(ContentService.MimeType.JSON);

} else {

Logger.log("Invalid data format: " + JSON.stringify(data));

return ContentService

.createTextOutput(JSON.stringify({ success: false, error: "Invalid data format" }))

.setMimeType(ContentService.MimeType.JSON);

}

} else {

Logger.log("Invalid operation: " + operation);

return ContentService

.createTextOutput(JSON.stringify({ success: false, error: "Invalid operation" }))

.setMimeType(ContentService.MimeType.JSON);

}

} catch (error) {

Logger.log("Error: " + error.stack);

return ContentService

.createTextOutput(JSON.stringify({ success: false, error: error.message }))

.setMimeType(ContentService.MimeType.JSON);

}

}


よし、そろそろスロットと脱出に戻ろう!

GAS連携色々 8時間

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ