Google Apps Script 지정 폴더에 복사본 만들기 + 데이터 전기(스프레드시트)
소개
스프레드 시트를 사용하여 웃을 정도! 간이적인 「견적서로부터 청구서를 지정 폴더에 작성」하는 방법을 소개하고 싶다.
준비하는 것
· 송장의 템플리 스프레드 시트
· 견적서 스프레드 시트
· 송장을 저장하고 싶은 폴더 (공유 폴더 등)
복사 된 송장의 템플릿에 견적서에서 얻은 데이터를 전기합니다.
애초에 스프레드 시트로 견적서라든가, 어떻게 만들지요? ? 라는 쪽은 여기 를 참고로.
다만, 이번은 「웃을 수 있을 만큼!간이적인」라고 일로, 루프 처리를 해 데이터를 취득! 같은 일은 하지 않는다! ! !
적절한 견적서 준비
이번에는 이것만.
더 이상 이것은 견적서가 아니다.
그러나 이번에는 "지정 폴더에 복사 작성 + 데이터를 전기"라는 점에만 초점을 맞추고 싶다.
그러므로 큰 눈을 보길 바란다. .
메뉴에 버튼 추가
송장을 작성하는 프로그램을 발동시키기 위한 버튼을 배치한다.ツール>スクリプトエディタ
에서 편집기를 엽니다.
디폴트로 존재하는 myFunction()
는 지웁시다.
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom')
.addItem('請求書を生成', 'menuItem1')
.addToUi();
}
이런 식으로 메뉴에 버튼을 만들 수 있을까.
지정 폴더에 복사 생성 + 데이터를 전기
다음 추가
// First itemをクリックした時の処理
function menuItem1() {
//現在のスプレットシートを取得する
var sheet1 = SpreadsheetApp.getActiveSheet();
//コピーするスプレットシートのid(今回の場合は請求書のテンプレ)
var templateid = "***";
var template = DriveApp.getFileById(templateid);
//保存先フォルダのオブジェクトを取得
var destfolderid = "***";
var destfolder = DriveApp.getFolderById(destfolderid);
//見積書からデータを取得
var name1 = sheet1.getRange(2, 2).getValue();
var name2 = sheet1.getRange(3, 2).getValue();
var filename = '請求書(' + name1 + ')';
//このsheetが指定フォルダにコピー作成された請求書のテンプレ
var sheet = template.makeCopy(filename, destfolder);
//指定フォルダにコピー作成された請求書のテンプレを取得
var copiedSheet = SpreadsheetApp.open(sheet);
var sheets = copiedSheet.getSheets();
//取得したスプレッドシートから、1つ目のシートを取得(デフォルトでは'シート1')
var invoice = sheets[0];
//データを転記
//コピー先のシートの中のセルを指定して、コピー実行
invoice.getRange(2, 2).setValue(name1);
invoice.getRange(3, 3).setValue(name2);
}
가볍게 해설
나 자신, 스게이 넘어진 포인트가 있으므로 꼭 해설하고 싶다.
지정된 폴더에 저장하려면 makeCopy()
우선, 복사 작성된 파일을 지정 폴더에 보존하고 싶은 경우, makeCopy()
를 사용할 필요가 있다.
닮은 것으로 copy()
도 존재하지만 , 여기에서는 보존처를 지정할 수 없다.
에서 makeCopy()
를 호출하려면 template
를 DriveApp.getFileById()
를 사용하여 가져와야 합니다.
//こっちじゃmakeCopy()を使えない
var template = SpreadsheetApp.openById('FileID');
var templateid = "***";
var template = DriveApp.getFileById(templateid);
var sheet = template.makeCopy(filename, destfolder);
필요한 것은 "시트 이름"! !
gas를 하고 있고, 완전히 실수하고 있었던 적이 있다.
그것은 "파일명과 시트명은 이콜이 아니다"라는 것이다.
실은 처음에 도착한 것은 이쪽.
var filename = '請求書(' + name1 + ')';
//このsheetが指定フォルダにコピー作成された請求書のテンプレ
var sheet = template.makeCopy(filename, destfolder);
var copiedSheet = SpreadsheetApp.open(sheet);
var invoice = copiedSheet.getSheetByName('シート名');
//最初は以下のようにしていた
//var invoice = copiedSheet.getSheetByName(filename);
여기서 성대한 착각을 하고 있었다.getSheetByName()
에 파일명을 지정하고 있었던 것이다. .
getSheet라고 써 있는데・・・. 하지만 어쩔 수 없다. 그때의 자신은 스프레드시트와 시트의 구별이 붙어 있지 않았기 때문에.
디폴트에서는 시트명은 「시트 1」이라고 알고 있지만, 이하와 같이 취득할 수 있는 것 같기 때문에 그쪽을 채용.
var sheets = copiedSheet.getSheets();
var invoice = sheets[0];
마지막으로
확고한 송장을 만드는데 도움이 될 것 같은 사이트를 붙여 둔다.
Reference
이 문제에 관하여(Google Apps Script 지정 폴더에 복사본 만들기 + 데이터 전기(스프레드시트)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kokogento/items/83e0a649cd911ab18a83
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에는 이것만.
더 이상 이것은 견적서가 아니다.
그러나 이번에는 "지정 폴더에 복사 작성 + 데이터를 전기"라는 점에만 초점을 맞추고 싶다.
그러므로 큰 눈을 보길 바란다. .
메뉴에 버튼 추가
송장을 작성하는 프로그램을 발동시키기 위한 버튼을 배치한다.ツール>スクリプトエディタ
에서 편집기를 엽니다.
디폴트로 존재하는 myFunction()
는 지웁시다.
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom')
.addItem('請求書を生成', 'menuItem1')
.addToUi();
}
이런 식으로 메뉴에 버튼을 만들 수 있을까.
지정 폴더에 복사 생성 + 데이터를 전기
다음 추가
// First itemをクリックした時の処理
function menuItem1() {
//現在のスプレットシートを取得する
var sheet1 = SpreadsheetApp.getActiveSheet();
//コピーするスプレットシートのid(今回の場合は請求書のテンプレ)
var templateid = "***";
var template = DriveApp.getFileById(templateid);
//保存先フォルダのオブジェクトを取得
var destfolderid = "***";
var destfolder = DriveApp.getFolderById(destfolderid);
//見積書からデータを取得
var name1 = sheet1.getRange(2, 2).getValue();
var name2 = sheet1.getRange(3, 2).getValue();
var filename = '請求書(' + name1 + ')';
//このsheetが指定フォルダにコピー作成された請求書のテンプレ
var sheet = template.makeCopy(filename, destfolder);
//指定フォルダにコピー作成された請求書のテンプレを取得
var copiedSheet = SpreadsheetApp.open(sheet);
var sheets = copiedSheet.getSheets();
//取得したスプレッドシートから、1つ目のシートを取得(デフォルトでは'シート1')
var invoice = sheets[0];
//データを転記
//コピー先のシートの中のセルを指定して、コピー実行
invoice.getRange(2, 2).setValue(name1);
invoice.getRange(3, 3).setValue(name2);
}
가볍게 해설
나 자신, 스게이 넘어진 포인트가 있으므로 꼭 해설하고 싶다.
지정된 폴더에 저장하려면 makeCopy()
우선, 복사 작성된 파일을 지정 폴더에 보존하고 싶은 경우, makeCopy()
를 사용할 필요가 있다.
닮은 것으로 copy()
도 존재하지만 , 여기에서는 보존처를 지정할 수 없다.
에서 makeCopy()
를 호출하려면 template
를 DriveApp.getFileById()
를 사용하여 가져와야 합니다.
//こっちじゃmakeCopy()を使えない
var template = SpreadsheetApp.openById('FileID');
var templateid = "***";
var template = DriveApp.getFileById(templateid);
var sheet = template.makeCopy(filename, destfolder);
필요한 것은 "시트 이름"! !
gas를 하고 있고, 완전히 실수하고 있었던 적이 있다.
그것은 "파일명과 시트명은 이콜이 아니다"라는 것이다.
실은 처음에 도착한 것은 이쪽.
var filename = '請求書(' + name1 + ')';
//このsheetが指定フォルダにコピー作成された請求書のテンプレ
var sheet = template.makeCopy(filename, destfolder);
var copiedSheet = SpreadsheetApp.open(sheet);
var invoice = copiedSheet.getSheetByName('シート名');
//最初は以下のようにしていた
//var invoice = copiedSheet.getSheetByName(filename);
여기서 성대한 착각을 하고 있었다.getSheetByName()
에 파일명을 지정하고 있었던 것이다. .
getSheet라고 써 있는데・・・. 하지만 어쩔 수 없다. 그때의 자신은 스프레드시트와 시트의 구별이 붙어 있지 않았기 때문에.
디폴트에서는 시트명은 「시트 1」이라고 알고 있지만, 이하와 같이 취득할 수 있는 것 같기 때문에 그쪽을 채용.
var sheets = copiedSheet.getSheets();
var invoice = sheets[0];
마지막으로
확고한 송장을 만드는데 도움이 될 것 같은 사이트를 붙여 둔다.
Reference
이 문제에 관하여(Google Apps Script 지정 폴더에 복사본 만들기 + 데이터 전기(스프레드시트)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kokogento/items/83e0a649cd911ab18a83
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Custom')
.addItem('請求書を生成', 'menuItem1')
.addToUi();
}
다음 추가
// First itemをクリックした時の処理
function menuItem1() {
//現在のスプレットシートを取得する
var sheet1 = SpreadsheetApp.getActiveSheet();
//コピーするスプレットシートのid(今回の場合は請求書のテンプレ)
var templateid = "***";
var template = DriveApp.getFileById(templateid);
//保存先フォルダのオブジェクトを取得
var destfolderid = "***";
var destfolder = DriveApp.getFolderById(destfolderid);
//見積書からデータを取得
var name1 = sheet1.getRange(2, 2).getValue();
var name2 = sheet1.getRange(3, 2).getValue();
var filename = '請求書(' + name1 + ')';
//このsheetが指定フォルダにコピー作成された請求書のテンプレ
var sheet = template.makeCopy(filename, destfolder);
//指定フォルダにコピー作成された請求書のテンプレを取得
var copiedSheet = SpreadsheetApp.open(sheet);
var sheets = copiedSheet.getSheets();
//取得したスプレッドシートから、1つ目のシートを取得(デフォルトでは'シート1')
var invoice = sheets[0];
//データを転記
//コピー先のシートの中のセルを指定して、コピー実行
invoice.getRange(2, 2).setValue(name1);
invoice.getRange(3, 3).setValue(name2);
}
가볍게 해설
나 자신, 스게이 넘어진 포인트가 있으므로 꼭 해설하고 싶다.
지정된 폴더에 저장하려면 makeCopy()
우선, 복사 작성된 파일을 지정 폴더에 보존하고 싶은 경우,
makeCopy()
를 사용할 필요가 있다.닮은 것으로
copy()
도 존재하지만 , 여기에서는 보존처를 지정할 수 없다.에서
makeCopy()
를 호출하려면 template
를 DriveApp.getFileById()
를 사용하여 가져와야 합니다. //こっちじゃmakeCopy()を使えない
var template = SpreadsheetApp.openById('FileID');
var templateid = "***";
var template = DriveApp.getFileById(templateid);
var sheet = template.makeCopy(filename, destfolder);
필요한 것은 "시트 이름"! !
gas를 하고 있고, 완전히 실수하고 있었던 적이 있다.
그것은 "파일명과 시트명은 이콜이 아니다"라는 것이다.
실은 처음에 도착한 것은 이쪽.
var filename = '請求書(' + name1 + ')';
//このsheetが指定フォルダにコピー作成された請求書のテンプレ
var sheet = template.makeCopy(filename, destfolder);
var copiedSheet = SpreadsheetApp.open(sheet);
var invoice = copiedSheet.getSheetByName('シート名');
//最初は以下のようにしていた
//var invoice = copiedSheet.getSheetByName(filename);
여기서 성대한 착각을 하고 있었다.
getSheetByName()
에 파일명을 지정하고 있었던 것이다. .getSheet라고 써 있는데・・・. 하지만 어쩔 수 없다. 그때의 자신은 스프레드시트와 시트의 구별이 붙어 있지 않았기 때문에.
디폴트에서는 시트명은 「시트 1」이라고 알고 있지만, 이하와 같이 취득할 수 있는 것 같기 때문에 그쪽을 채용.
var sheets = copiedSheet.getSheets();
var invoice = sheets[0];
마지막으로
확고한 송장을 만드는데 도움이 될 것 같은 사이트를 붙여 둔다.
Reference
이 문제에 관하여(Google Apps Script 지정 폴더에 복사본 만들기 + 데이터 전기(스프레드시트)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kokogento/items/83e0a649cd911ab18a83
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Google Apps Script 지정 폴더에 복사본 만들기 + 데이터 전기(스프레드시트)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kokogento/items/83e0a649cd911ab18a83텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)