google 양식에서 마크다운 기법으로 변환
13602 단어 초보자googlegooglescriptgas
무엇을 했는가
Google Apps Script (GAS)를 사용하여 google 양식에서 마크 다운 표기법 문서 생성
참고로 한 사이트
Spreadsheet Service → GAS를 사용하여 스프레드 시트를 제어하기 위해
문서 서비스 → GAS를 사용하여 문서 만들기
기능별 설명
스프레드시트 UI
onOpen()에서 도구 등의 열에 "markdown 생성"이라는 이름으로 추가됨
showSidebar()는 "markdown 생성"을 누를 때 표시되는 "생성"을 누르면 표시되는 내용
UI.gsfunction onOpen() {
var ui = SpreadsheetApp.getUi(); // Uiクラスを取得する
var menu = ui.createMenu('markdownの生成'); // Uiクラスからメニューを作成する
menu.addItem('生成', 'showSidebar'); // メニューにアイテムを追加する
menu.addToUi(); // メニューをUiクラスに追加する
}
function showSidebar() {
var htmlOutput = HtmlService.createHtmlOutputFromFile('index');
SpreadsheetApp.getUi().showSidebar(htmlOutput);
}
생성을 누를 때 표시되는 내용
button을 onclick하면 GAS측에서 설정한 coding이라는 함수가 호출된다.
index.html<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
<base target="_top">
</head>
<body>
<script>
function get_user(){
var user = document.getElementById("target").value;
return user;
}
</script>
<label>出力したい列の行数</label><br>
<input type="text"name="target" id="target" placeholder="(例)3">
<button onclick="google.script.run.coding(get_user())">送信</button>
</body>
</html>
coding 함수에서 make_markdown을 호출하고 return에서 반환하는 것은 insert_data로 만든 문서의 URL을 반환합니다.
그것을 alert하면 URL이 화면에 표시됩니다.
make_markdown.gsfunction insert_data(text,info){
var myFolder = DriveApp.getFolderById("FolderID");
var document = DocumentApp.create(info);
document.getBody().setText(text);
// docファイルの移動
var docFile = DriveApp.getFileById(document.getId());
myFolder.addFile(docFile);
// Rootの所属を外す
DriveApp.getRootFolder().removeFile(docFile);
return(docFile.getUrl());
}
function make_markdown(target){
var sheet = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/Spreadsheet_ID");
var s = sheet.getSheetByName("Sheet_name");
var info = s.getRange(target,5).getValue()+":"+s.getRange(target,6).getValue();
var text = "# 自己紹介\n";
text = text+"名前:"+s.getRange(target,2).getValue()+"\n";
if(!s.getRange(target,9).isBlank()){ // googleフォームの空白判定
// 処理1
}
if(!s.getRange(target, 28).isBlank()){
// 処理2
}
if(!s.getRange(target,11).isBlank()){
// 処理3
}
if(!s.getRange(target,16).isBlank()){
// 処理4
}
var doc = insert_data(text,info);
return doc;
}
function coding(data){
var ui = SpreadsheetApp.getUi();
var url = make_markdown(Number(data));
ui.alert(url);
}
※ 주의점
- 문서를 만들 때 폴더를 지정할 수 없으므로 최상위 수준 아래에 파일이 생성됩니다.
- 파일을 이동하기만 하면 초기 위치와 공유되는 형태가 되므로 루트를 제거한다.
완제품
다른 사람도 사용할 수 있었기 때문에 UI를 설계.
실행이 완료되면 문서 URL이 표시됩니다.
문서로 이동하면 마크다운이 생성됩니다! !
무엇에 도움이 되는가?
ZENPEN~전국편 입생회~ 이라는 사이트를 운영하고 있으며, 그 중 하나의 콘텐츠로 편입 체험담 (Link) 이 존재한다.
게시 방법으로 google 양식을 채용하고 있으며, 거기에서 wordpress 기사에 원활하게 게시가 가능하게되었다.
일반적인 일로 할 수 있거나 할 것인가와 조금 의문은 남는다.
미래의 도전
Spreadsheet Service → GAS를 사용하여 스프레드 시트를 제어하기 위해
문서 서비스 → GAS를 사용하여 문서 만들기
기능별 설명
스프레드시트 UI
onOpen()에서 도구 등의 열에 "markdown 생성"이라는 이름으로 추가됨
showSidebar()는 "markdown 생성"을 누를 때 표시되는 "생성"을 누르면 표시되는 내용
UI.gsfunction onOpen() {
var ui = SpreadsheetApp.getUi(); // Uiクラスを取得する
var menu = ui.createMenu('markdownの生成'); // Uiクラスからメニューを作成する
menu.addItem('生成', 'showSidebar'); // メニューにアイテムを追加する
menu.addToUi(); // メニューをUiクラスに追加する
}
function showSidebar() {
var htmlOutput = HtmlService.createHtmlOutputFromFile('index');
SpreadsheetApp.getUi().showSidebar(htmlOutput);
}
생성을 누를 때 표시되는 내용
button을 onclick하면 GAS측에서 설정한 coding이라는 함수가 호출된다.
index.html<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
<base target="_top">
</head>
<body>
<script>
function get_user(){
var user = document.getElementById("target").value;
return user;
}
</script>
<label>出力したい列の行数</label><br>
<input type="text"name="target" id="target" placeholder="(例)3">
<button onclick="google.script.run.coding(get_user())">送信</button>
</body>
</html>
coding 함수에서 make_markdown을 호출하고 return에서 반환하는 것은 insert_data로 만든 문서의 URL을 반환합니다.
그것을 alert하면 URL이 화면에 표시됩니다.
make_markdown.gsfunction insert_data(text,info){
var myFolder = DriveApp.getFolderById("FolderID");
var document = DocumentApp.create(info);
document.getBody().setText(text);
// docファイルの移動
var docFile = DriveApp.getFileById(document.getId());
myFolder.addFile(docFile);
// Rootの所属を外す
DriveApp.getRootFolder().removeFile(docFile);
return(docFile.getUrl());
}
function make_markdown(target){
var sheet = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/Spreadsheet_ID");
var s = sheet.getSheetByName("Sheet_name");
var info = s.getRange(target,5).getValue()+":"+s.getRange(target,6).getValue();
var text = "# 自己紹介\n";
text = text+"名前:"+s.getRange(target,2).getValue()+"\n";
if(!s.getRange(target,9).isBlank()){ // googleフォームの空白判定
// 処理1
}
if(!s.getRange(target, 28).isBlank()){
// 処理2
}
if(!s.getRange(target,11).isBlank()){
// 処理3
}
if(!s.getRange(target,16).isBlank()){
// 処理4
}
var doc = insert_data(text,info);
return doc;
}
function coding(data){
var ui = SpreadsheetApp.getUi();
var url = make_markdown(Number(data));
ui.alert(url);
}
※ 주의점
- 문서를 만들 때 폴더를 지정할 수 없으므로 최상위 수준 아래에 파일이 생성됩니다.
- 파일을 이동하기만 하면 초기 위치와 공유되는 형태가 되므로 루트를 제거한다.
완제품
다른 사람도 사용할 수 있었기 때문에 UI를 설계.
실행이 완료되면 문서 URL이 표시됩니다.
문서로 이동하면 마크다운이 생성됩니다! !
무엇에 도움이 되는가?
ZENPEN~전국편 입생회~ 이라는 사이트를 운영하고 있으며, 그 중 하나의 콘텐츠로 편입 체험담 (Link) 이 존재한다.
게시 방법으로 google 양식을 채용하고 있으며, 거기에서 wordpress 기사에 원활하게 게시가 가능하게되었다.
일반적인 일로 할 수 있거나 할 것인가와 조금 의문은 남는다.
미래의 도전
function onOpen() {
var ui = SpreadsheetApp.getUi(); // Uiクラスを取得する
var menu = ui.createMenu('markdownの生成'); // Uiクラスからメニューを作成する
menu.addItem('生成', 'showSidebar'); // メニューにアイテムを追加する
menu.addToUi(); // メニューをUiクラスに追加する
}
function showSidebar() {
var htmlOutput = HtmlService.createHtmlOutputFromFile('index');
SpreadsheetApp.getUi().showSidebar(htmlOutput);
}
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
<base target="_top">
</head>
<body>
<script>
function get_user(){
var user = document.getElementById("target").value;
return user;
}
</script>
<label>出力したい列の行数</label><br>
<input type="text"name="target" id="target" placeholder="(例)3">
<button onclick="google.script.run.coding(get_user())">送信</button>
</body>
</html>
function insert_data(text,info){
var myFolder = DriveApp.getFolderById("FolderID");
var document = DocumentApp.create(info);
document.getBody().setText(text);
// docファイルの移動
var docFile = DriveApp.getFileById(document.getId());
myFolder.addFile(docFile);
// Rootの所属を外す
DriveApp.getRootFolder().removeFile(docFile);
return(docFile.getUrl());
}
function make_markdown(target){
var sheet = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/Spreadsheet_ID");
var s = sheet.getSheetByName("Sheet_name");
var info = s.getRange(target,5).getValue()+":"+s.getRange(target,6).getValue();
var text = "# 自己紹介\n";
text = text+"名前:"+s.getRange(target,2).getValue()+"\n";
if(!s.getRange(target,9).isBlank()){ // googleフォームの空白判定
// 処理1
}
if(!s.getRange(target, 28).isBlank()){
// 処理2
}
if(!s.getRange(target,11).isBlank()){
// 処理3
}
if(!s.getRange(target,16).isBlank()){
// 処理4
}
var doc = insert_data(text,info);
return doc;
}
function coding(data){
var ui = SpreadsheetApp.getUi();
var url = make_markdown(Number(data));
ui.alert(url);
}
다른 사람도 사용할 수 있었기 때문에 UI를 설계.
실행이 완료되면 문서 URL이 표시됩니다.
문서로 이동하면 마크다운이 생성됩니다! !
무엇에 도움이 되는가?
ZENPEN~전국편 입생회~ 이라는 사이트를 운영하고 있으며, 그 중 하나의 콘텐츠로 편입 체험담 (Link) 이 존재한다.
게시 방법으로 google 양식을 채용하고 있으며, 거기에서 wordpress 기사에 원활하게 게시가 가능하게되었다.
일반적인 일로 할 수 있거나 할 것인가와 조금 의문은 남는다.
미래의 도전
마지막으로
GAS나 프로그래밍을 이용해 자동화·효율화를 하고 싶다, 의뢰하고 싶은 분은 연락( 트위터 )을 주세요.
Reference
이 문제에 관하여(google 양식에서 마크다운 기법으로 변환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mozzz1100/items/3113fc9629687ceeaeb7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(google 양식에서 마크다운 기법으로 변환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mozzz1100/items/3113fc9629687ceeaeb7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)