スプレッドシートの表の情報を
Slackに投稿したい。
スプレッドシート表
・1行目はタイトル
・データはA列からD列
・行が増えていく
Slack投稿イメージ
1行目のタイトル(A列〜D列)
A2セルの情報 B2セルの情報 C2セル情報 D2セルの情報
⬆️
各セル文字数が異なるがため、
文字数の長いものに揃えてSlackに投稿したい。
ご自身で作成されているコードなどはありますでしょうか?
slackへの投稿はどのように行うことを想定しているのでしょうか?
・スプレッドシート上に投稿ボタンを設置して実行
・GASで直接実行
・slackに特定のメッセージが入力された時に実行
ご回答ありがとうございます。
コードは下記の通りです。
slackへの投稿は「スプレッドシート上に投稿ボタンを設置して実行」です。
コードはググったものを使用しており、あまり意味が理解できておらず。。。
どうぞよろしくお願いいたします。
-----------------------------------------------------------------------
function sendMessage() {
const postUrl = 'https://hooks.slack.com/workflows/****';
const sendMessage = createMessage();
const jsonData = {
"text": sendMessage
};
const payload = JSON.stringify(jsonData);
const options = {
"method": "post",
"contentType": "application/json",
"payload": payload
};
UrlFetchApp.fetch(postUrl, options);
}
function createMessage() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheet = spreadsheet.getSheetByName("slack投稿用");
const columnVals = sheet.getRange('A:A').getValues();
const lastRow = sheet.getLastRow();
// const lastRow = columnVals.filter(String).length;
var rider_list = ['各課の超勤状況画像はコチラ↓','https://docs.google.com/spreadsheets/***'];
for (let i = 1; i <=8; i++) {
rider_list.push(sheet.getRange(i,1).getValue() + sheet.getRange(i,2).getValue()+sheet.getRange(i,3).getValue() + sheet.getRange(i,4).getValue());
}
var output = rider_list.join('\n');
return output;
}
-----------------------------------------------------------------------
すみません。
> 各セル文字数が異なるがため、
> 文字数の長いものに揃えてSlackに投稿したい。
ここを具体的に教えていただきたいです。
文字列を全て結合しているので、各列の値が見づらいということでしょうか?
ご確認ありがとうございます。
そしてレスが遅くなりすみません!
>文字列を結合しているから、各列の値が見づらい
はい!
その通りです。
どうぞ宜しくお願いします。
各セルの最大文字数を取得し、それに合わせるように半角/全角空白で埋めて見ました。
GAS上のconsoleログでは綺麗に見えますが
Slackに送信すると、文字サイズの違いで、ずれて表示されました。
スニペットとして投稿しても問題ないでしょうか?
回答2件
あなたの回答
tips
プレビュー