2013-02-20 4 views
7

저는 아마추어 코더입니다. 저는 제 인생을 편하게하기 위해 몇 가지 일을하고 있습니다. 학교에서 여러 학년의 징계 문제를 추적하기 위해 Google 설문지 및 스프레드 시트를 설정했습니다. 적절한 사람에게 전자 메일로 제출 내용을 알리고 선택한 학습자에 대한 보고서를 필터링하고 작성할 수있는 간단한 스크립트를 작성했습니다.스크립트를 여러 개의 Google 스프레드 시트에 삽입하십시오.

DIY 코딩 (영어와 프랑스어 선생님, 프로그래밍을 공부하지 않았으므로) 때문에 처음부터 분명해야 할 몇 가지 개선점이 있습니다. 필자는 스크립트 개선을 모든 스프레드 시트의 스크립트 편집기에 복사하여 붙여 넣기를 정말로 원하지 않습니다. 이 스크립트를 Google 드라이브의 독립 실행 형 파일로 복사했지만 갤러리에서 게시 된 스크립트/앱에만 액세스 할 수 있으므로 스프레드 시트에 삽입 할 수 없습니다. 이 문제를 해결할 방법이 있습니까? 라이브러리 사용에 대한 언급을 보았지만 어디서부터 시작해야할지 전혀 알지 못합니다. Google 드라이브에서 스크립트를 독립 실행 형으로 만들 수는 있지만 실제로는 사용하지 않는 것은 다소 어리석은 느낌입니다.

도움을 주시면 감사하겠습니다.

답변

6

처음에는 문제로 제기되었지만 Google의 솔루션은 '라이브러리'기능이었습니다. 당신은 당신의 프로젝트의 버전을 저장해야합니다

  1. 그래서 당신이 원하는 것입니다. 파일> 버전 관리 ...
  2. 그런 다음 파일> 프로젝트 속성으로 이동하여 프로젝트 키를 복사하십시오.
  3. 다른 모든 스프레드 시트에서 스크립트 편집기로 이동하여 리소스> 라이브러리 관리로 이동해야합니다. 그런 다음 위의 프로젝트 키를 붙여넣고 스프레드 시트 스크립트에 추가하십시오.

자동 완성 방법이 없습니다. 스프레드 시트에서 스크립트를 실행하려면 각 스프레드 시트의 스크립트 편집기로 이동해야합니다. 이 라이브러리를 구축하는 방법에 대한 일반적인 개요를 제공하지만 난 그게에 '정말 당신을 넣어 충분하지 않을 까봐 두려워하기 때문에

Source

+0

이 도움을 주셔서 감사합니다 스크립트 앱이 드라이브에 파일 생성과 배열에서 당신이 원하는 모든 스프레드 시트 ID를 넣고 루프 트릭 스크립트를 실행할 수 있습니다, 당신을 도와줍니다. 나는 도서관에서 가서 내가 성취 할 수있는 것을 보게 될 것이다. – user2091307

4

다른 대답 (빌 Bozak는) 전혀 나쁘지 않다 바른 길 '. 당신이 라이브러리 함수는 스크립트로 직접 사용할 수 없습니다 오히려 도구로 간주해야 함을 의미 기본 서비스를 사용하는 것처럼 당신은 당신의 포함 된 라이브러리를 사용할 수 있습니다 문서에서 언급 한 바와 같이

해당 스크립트 기능 부를 수있다.

각 스프레드 시트에서 실제로 라이브러리 서비스를 '호출하는'기본 함수가 있어야합니다.이 함수는 실제 작업을 처리합니다.

간단한 예를 들어 보겠습니다. 시트의 배경색을 변경하려는 경우 yourLibrary에 현재 시트의 색상을 변경하는 기능이 있습니다 (yourLibrary은 라이브러리에 지정한 이름 임). 이 함수는 changeColor이라고합니다.

이제 스크립트에서 yourLibrary.changeColor을 사용할 수 있지만 특별한 작업 (onEdit, onOpen ... 또는 메뉴 호출)에서 실행되도록하려면이 "서비스 호출"이 스프레드 시트의 스크립트 자체에 있어야합니다. 라이브러리는 동일한 스크립트 편집기의 자원에서 참조되어야합니다.

이 모든 것은 라이브러리 기능이 매우 유용하고 매우 쉽지만 각 스프레드 시트에 '스켈레톤 스크립트'가 필요하다는 것을 설명하기 위해 '스크립트'를 호출하는 기본 구조로 스크립트를 재 작성하는 방법에 대해 생각해야합니다. 실제 부품을 업데이트 할 수있는 부품 '. ;-) 아주 편안 (즉 완료 후)

간단하지만

이 충분히 분명 희망.

+0

입력 해 주셔서 감사합니다. 조금 주위를보고 조언을 준 후에, 나는 그것을 해독 할 수있을 것이라고 생각합니다. 나는 걸쇠를 치면 다시 돌아올거야! – user2091307

+0

그것은 매력처럼 작동했습니다. 조금 느린 느낌이 들지만 그것은 저의 작업 속도가 느린 인터넷 연결 때문일 수 있습니다. 개발자 모드를 사용하도록 설정했지만 새 버전을 저장하지 않고도 내 라이브러리의 변경 사항이 즉시 내 스프레드 시트에 표시 될 것으로 예상했습니다. 나는 조금 더 연구를 할 것입니다. 아마 뭔가를 놓친 것 같습니다. 건배! – user2091307

+1

이 [이 게시물] (http://stackoverflow.com/questions/12521872/development-mode-copies-of-template-spreadsheets-made-by-other-users) 봐, 내가 도움이 될 것 같아요. 그리고 그것은 행복합니다 ;-) –

2

개별 스프레드 시트에 자체 컨테이너 스크립트가 필요한지 여부를 생각해 볼 수도 있습니다. 왜 독자 분은 독립형으로 모든 시트에 대한 보고서를 읽고 실행하지 못합니까?

0

또 다른 솔루션 5 월 당신은

관련 문제