こんにちは!
業務でkintoneを使っていると、「データをGoogleスプレッドシートに出力したい」と思う場面があります。たとえば、集計やグラフ作成をGoogleスプレッドシートで行いたい場合などが典型的です。本記事では、kintoneアプリにボタンを設置し、ボタンクリックでkintoneのレコードを取得し、Googleスプレッドシートに自動でコピーする方法をご紹介します。
お知らせ①
🌟無料&登録不要でプラグインのお試しが可能!🌟
kintoneユーザーの皆さん!
エムザスのkintoneプラグインはもう試しましたか?🤔
エムザスでは以下のようなプラグインを開発しています!👇
デモ環境で、ほとんどの機能が今すぐお試しいただけます✨
さらに、お客様のドメインで無料で3ヶ月間、すべての機能を試すこともできます!🎉
それでは、本題に入ります!
kintoneにボタンを設置する
まずは、kintoneのカスタマイズビューやカスタマイズJSでボタンを追加します。以下のコードを例とします。
kintone.events.on('app.record.index.show', function(event) {
if (document.getElementById('export-button')) return;
const button = document.createElement('button');
button.id = 'export-button';
button.innerText = 'スプレッドシートへ出力';
button.onclick = exportRecords;
kintone.app.getHeaderMenuSpaceElement().appendChild(button);
});
レコードを取得する
ボタンがクリックされたときに、kintone REST APIを使ってレコードを取得します。以下のようにfetch APIでkintoneからレコードを取得できます。
function exportRecords() {
const body = {
app: kintone.app.getId(),
query: 'limit 100'
};
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body, function(resp) {
const records = resp.records;
sendToGoogleSheet(records);
});
}
Googleスプレッドシートにデータを書き込む
最後に、Google Apps Script(GAS)を使ってスプレッドシート側にAPIを作成しておき、kintoneからデータを送信します。GAS側のコードは以下の通りです。
function doPost(e) {
const data = JSON.parse(e.postData.contents);
const sheet = SpreadsheetApp.openById('スプレッドシートID').getSheetByName('シート名');
data.forEach(function(record) {
sheet.appendRow([record.フィールドコード1.value, record.フィールドコード2.value]);
});
return ContentService.createTextOutput('ok');
}
kintoneのsendToGoogleSheet
関数内で、fetchを使ってPOSTリクエストを送信します。
function sendToGoogleSheet(records) {
fetch('https://script.google.com/macros/s/デプロイURL/exec', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(records)
});
}
おわりに
今回ご紹介した方法を使えば、ワンクリックでkintoneのデータをGoogleスプレッドシートにコピーすることが可能です。業務の効率化やデータ活用の幅を広げるきっかけにしていただければ幸いです。今後は自動実行やフィルタ処理など、さらに高度な連携も目指せますので、ぜひ試してみてください。