Backlog 과제 목록을 GoogleAppsScript로 SpreadSheet에 연결
14214 단어 BacklogGoogleAppsScriptspreadsheet
스프레드시트 준비
아래 표와 같이, 2행째에 Backlog의 응답의 키를 미리 기술해 두고, 과제의 값을 3행째 이후에 기술해 가는 것으로 한다.
커스텀 필드의 경우, 1번째는 customFields1, 2번째는 customFields2...로 한다.
일괄 취득 전의 이미지
개요
마감일
상태
세 번째 맞춤 입력란
summary
dueDate
status
customFields3
일괄 취득 후의 이미지
개요
마감일
상태
세 번째 맞춤 입력란
summary
dueDate
status
customFields3
트리플 엑스
2019/06/06
처리 중
xxxxxx
yyy 건
2019/07/07
미대응
yyyyyy
Backlog 과제 얻기
여기에 메모했다.
h tps:// 퀵했다. 작은 m/루 by FM↑/있어 MS/1c594819134258d1C4 그림 3
SpreadSheet에 붙여넣기
SpreadSheet에 붙여넣는 메인 함수
main.jsfunction writeSpreadsheet(array) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート名");//シート名を指定
var key_row = 2;//キーの行を指定
var write_issues = [];//書き込み内容を格納する配列
//SpreadSheetで使用するキー一覧
var keys = sheet.getRange(key_row, 1, 1, sheet.getLastColumn()).getValues()[0];
for(var i in array){
var issue = array[i];
var write_issue = [];
//無効と重複は表示しない
if(issue["resolution"] && (issue["resolution"]["id"] === 2 || issue["resolution"]["id"] === 3)){
continue;
}
for(ii in keys){
var key = keys[ii];
if(!key) break;
//値を配列から取得
var val = issue[key];
//カスタムフィールドの値を取得
if(key.match(/^customFields/)) val = val["customFields"][key.match(/\d+$/) - 1]["value"];
//配列の場合は値に変換する関数
val = val2str(val);
//日付の場合、フォーマットを変更する関数
val = dateFormat(val);
//書き込み用の配列に追加
write_issue.push(val);
}
//書き込み用の配列に追加
write_issues.push(write_issue);
}
//データをシートに書き込む
if(write_issues){
sheet.getRange(key_row + 1, 1, write_issues.length, write_issues[0].length).setValues(write_issues);
Browser.msgBox("書き込み完了しました。");
}
else{
Browser.msgBox("データはありませんでした。");
}
}
형식을 알 수 없는 값을 재귀적으로 문자열로 변환
배열의 경우는/로 단락 연결하도록 한다.
util.jsfunction val2str(val){
if(val === null) return "";
if(typeof val === "object"){
if(val["name"]) return val["name"];
if(val[0]){
var val2 = val2str(val[0]);
for(i in val){
val2 += "/" + val2str(val[i])
}
return val2;
}
}
return val;
}
SpreadSheet의 날짜 형식으로 변환
YYYY-MM-DDTHH:MM:SSZ 를 YYYY/MM/DD 로 변환.
SpreadSheet에 YYYY/MM/DD로 입력하면 날짜로 인식합니다
util.jsfunction dateFormat(date){
if(!date) return date;
if(typeof date !== "string") return date;
var regex_date = /^\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}Z$/;
if(date.match(regex_date)) return date.slice(0,4) + "/" + date.slice(5,7) + "/" + date.slice(8,10);
return date;
}
Reference
이 문제에 관하여(Backlog 과제 목록을 GoogleAppsScript로 SpreadSheet에 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rubyfmzk_/items/e8cec42bbdeeb3d82e26
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
여기에 메모했다.
h tps:// 퀵했다. 작은 m/루 by FM↑/있어 MS/1c594819134258d1C4 그림 3
SpreadSheet에 붙여넣기
SpreadSheet에 붙여넣는 메인 함수
main.jsfunction writeSpreadsheet(array) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート名");//シート名を指定
var key_row = 2;//キーの行を指定
var write_issues = [];//書き込み内容を格納する配列
//SpreadSheetで使用するキー一覧
var keys = sheet.getRange(key_row, 1, 1, sheet.getLastColumn()).getValues()[0];
for(var i in array){
var issue = array[i];
var write_issue = [];
//無効と重複は表示しない
if(issue["resolution"] && (issue["resolution"]["id"] === 2 || issue["resolution"]["id"] === 3)){
continue;
}
for(ii in keys){
var key = keys[ii];
if(!key) break;
//値を配列から取得
var val = issue[key];
//カスタムフィールドの値を取得
if(key.match(/^customFields/)) val = val["customFields"][key.match(/\d+$/) - 1]["value"];
//配列の場合は値に変換する関数
val = val2str(val);
//日付の場合、フォーマットを変更する関数
val = dateFormat(val);
//書き込み用の配列に追加
write_issue.push(val);
}
//書き込み用の配列に追加
write_issues.push(write_issue);
}
//データをシートに書き込む
if(write_issues){
sheet.getRange(key_row + 1, 1, write_issues.length, write_issues[0].length).setValues(write_issues);
Browser.msgBox("書き込み完了しました。");
}
else{
Browser.msgBox("データはありませんでした。");
}
}
형식을 알 수 없는 값을 재귀적으로 문자열로 변환
배열의 경우는/로 단락 연결하도록 한다.
util.jsfunction val2str(val){
if(val === null) return "";
if(typeof val === "object"){
if(val["name"]) return val["name"];
if(val[0]){
var val2 = val2str(val[0]);
for(i in val){
val2 += "/" + val2str(val[i])
}
return val2;
}
}
return val;
}
SpreadSheet의 날짜 형식으로 변환
YYYY-MM-DDTHH:MM:SSZ 를 YYYY/MM/DD 로 변환.
SpreadSheet에 YYYY/MM/DD로 입력하면 날짜로 인식합니다
util.jsfunction dateFormat(date){
if(!date) return date;
if(typeof date !== "string") return date;
var regex_date = /^\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}Z$/;
if(date.match(regex_date)) return date.slice(0,4) + "/" + date.slice(5,7) + "/" + date.slice(8,10);
return date;
}
Reference
이 문제에 관하여(Backlog 과제 목록을 GoogleAppsScript로 SpreadSheet에 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rubyfmzk_/items/e8cec42bbdeeb3d82e26
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
function writeSpreadsheet(array) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート名");//シート名を指定
var key_row = 2;//キーの行を指定
var write_issues = [];//書き込み内容を格納する配列
//SpreadSheetで使用するキー一覧
var keys = sheet.getRange(key_row, 1, 1, sheet.getLastColumn()).getValues()[0];
for(var i in array){
var issue = array[i];
var write_issue = [];
//無効と重複は表示しない
if(issue["resolution"] && (issue["resolution"]["id"] === 2 || issue["resolution"]["id"] === 3)){
continue;
}
for(ii in keys){
var key = keys[ii];
if(!key) break;
//値を配列から取得
var val = issue[key];
//カスタムフィールドの値を取得
if(key.match(/^customFields/)) val = val["customFields"][key.match(/\d+$/) - 1]["value"];
//配列の場合は値に変換する関数
val = val2str(val);
//日付の場合、フォーマットを変更する関数
val = dateFormat(val);
//書き込み用の配列に追加
write_issue.push(val);
}
//書き込み用の配列に追加
write_issues.push(write_issue);
}
//データをシートに書き込む
if(write_issues){
sheet.getRange(key_row + 1, 1, write_issues.length, write_issues[0].length).setValues(write_issues);
Browser.msgBox("書き込み完了しました。");
}
else{
Browser.msgBox("データはありませんでした。");
}
}
function val2str(val){
if(val === null) return "";
if(typeof val === "object"){
if(val["name"]) return val["name"];
if(val[0]){
var val2 = val2str(val[0]);
for(i in val){
val2 += "/" + val2str(val[i])
}
return val2;
}
}
return val;
}
function dateFormat(date){
if(!date) return date;
if(typeof date !== "string") return date;
var regex_date = /^\d{4}\-\d{2}\-\d{2}T\d{2}:\d{2}:\d{2}Z$/;
if(date.match(regex_date)) return date.slice(0,4) + "/" + date.slice(5,7) + "/" + date.slice(8,10);
return date;
}
Reference
이 문제에 관하여(Backlog 과제 목록을 GoogleAppsScript로 SpreadSheet에 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rubyfmzk_/items/e8cec42bbdeeb3d82e26텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)