จะส่งออก / นำเข้าสคริปต์ของ Google Apps เป็นไฟล์ลงในสเปรดชีตใหม่ได้อย่างไร


13

ฉันกลัวว่านี่อาจเป็นคำตอบที่ชัดเจน แต่ฉันก็ล้มหัวและไม่สามารถหามันเจอ!

เมื่อสร้างสเปรดชีตใหม่เราได้อย่างง่ายดายสามารถสร้างสคริปต์ภายในมัน ผมชอบที่จะเรียกมันว่าแมโคร แต่เมื่อฉันสร้างสเปรดชีตที่ใหม่กว่าฉันไม่สามารถหามาโครที่ดีได้เลย!

ฉันแค่ต้องการบันทึกไฟล์และนำกลับมาใช้ใหม่ตามต้องการโดยไม่จำเป็นต้องคัดลอกและวางและเปลี่ยนชื่อ เป้าหมายของฉันที่นี่คือการแชร์สคริปต์และใครก็ตามที่จะใช้มันไม่ใช่โปรแกรมเมอร์ นี่ต้องง่ายจริงๆ!

ข้อมูลเชิงลึกใด ๆ

คำตอบ:


9

"ทางออกของห้องสมุด" เป็นทางออกที่ดีที่สุดของคุณ มันไม่ซับซ้อนเท่าที่ฟัง แต่ใช้งานเพียงครั้งเดียว

ก่อนอื่นคุณสร้างสคริปต์ของคุณในสเปรดชีตเดียว (เรียกว่าสเปรดชีตหลัก )

บันทึกเวอร์ชันของสคริปต์โดยคลิกที่ไฟล์→จัดการเวอร์ชันในเครื่องมือแก้ไขสคริปต์และตั้งชื่อรุ่นของคุณ:

สกรีนช็อตของกล่องโต้ตอบจัดการเวอร์ชัน

ปิดกล่องโต้ตอบนี้และไปที่File →คุณสมบัติของโครงการ ที่นี่ค้นหารหัสโครงการซึ่งเป็นการรวมกันแบบสุ่มของอักขระ:

สกรีนช็อตของกล่องโต้ตอบโครงการ Proerties

คัดลอกหรือรับทราบรหัสโครงการ

เมื่อคุณสร้างสเปรดชีตใหม่และต้องการนำสคริปต์กลับมาใช้ใหม่ให้ไปที่เครื่องมือแก้ไขสคริปต์และคลิกทรัพยากร→ไลบรารี (หากคุณไม่ได้บันทึกสคริปต์ใหม่ของคุณคุณจะถูกถามในตอนนี้)

ในฟิลด์ค้นหาห้องสมุดให้วางรหัสโครงการจากโครงการหลัก (1) และคลิกเลือก (2):

สกรีนช็อตของกล่องโต้ตอบจัดการไลบรารี

สิ่งนี้จะเติมรายการด้วยสคริปต์หลักของคุณ ให้ชื่อที่เป็นมิตรมากขึ้น (3) และเปิดโหมดการพัฒนา (4) (สิ่งนี้จะช่วยให้คุณสามารถดีบักไลบรารี) เลือกเวอร์ชันล่าสุดของสคริปต์ของคุณ (5)

ตอนนี้คุณสามารถใช้ฟังก์ชั่นจากห้องสมุดที่รวมอยู่ในสคริปต์ใหม่ของคุณ เพียงแค่ย่อหน้าชื่อฟังก์ชั่นใด ๆ กับชื่อที่คุณระบุไว้ใน (3) เพื่อที่ว่าถ้าคุณระบุไว้ในห้องสมุดของคุณเป็นMyLibraryและห้องสมุดของคุณมีฟังก์ชั่นที่คุณต้องการที่จะเรียกคุณเรียกmyFunctionMyLibrary.myFunction()

เมื่อคุณต้องการอัปเดตไลบรารีของคุณคุณเพียงแค่ทำและบันทึกไฟล์ สคริปต์ใด ๆ ที่ขึ้นอยู่กับไลบรารีจะเห็นรหัสไลบรารีที่อัพเดต

ฉันแค่พยายามออกกำลังกายนี้เป็นหลักฐานพิสูจน์ของแนวคิด:

  • ตั้งค่าไลบรารีด้วยฟังก์ชัน: function myFunction() {return "Foo"}
  • รวมไว้ในสคริปต์อื่นโดยระบุไลบรารีเป็น MyLibrary
  • เรียกว่าฟังก์ชั่นห้องสมุดด้วย Logger.log(MyLibrary.myFunction)
  • บันทึกจะปรากฏขึ้น Foo
  • แก้ไขห้องสมุด: function myFunction() {return "Bar"}
  • เรียกใช้สคริปต์รวมถึงอีกครั้งบันทึกจะปรากฏขึ้น Bar

ดังนั้นจึงค่อนข้างง่ายหลังจากตั้งค่าเริ่มต้น ดูตัวอย่างโฟลเดอร์นี้ใน Google Drive ของฉัน

ยังเห็นเอกสารของ Google สำหรับห้องสมุด


2
ฉันคิดว่าฉันยังไม่ชัดเจนพอในคำถามของฉัน (ฉันมีลิงค์แสดงวิธีการทำห้องสมุดฉันได้อ่านลิงก์ทั้งหมดของฉันและอื่น ๆ อีกมากมายฉันคิดว่าฉันได้อ่านเอกสารทั้งหมด) และฉันละเว้นสิ่งสำคัญ ข้อมูลขออภัยเกี่ยวกับสิ่งนี้ ฉันรู้ว่ามันไม่ใช่ " สิ่งที่ซับซ้อนทั้งหมด " ที่จะทำ แต่เป้าหมายหลักของฉันที่นี่คือการแชร์สคริปต์และมันก็ซับซ้อนพอที่ฉันจะแบ่งปัน เรียบง่ายต้องเรียบง่าย ฉันจะแก้ไขคำถาม แต่ขอขอบคุณสำหรับการพิจารณาทั้งหมด! นอกจากนี้ฉันไม่เห็นอะไรในโฟลเดอร์ของคุณ เพียง 2 ไฟล์ว่างเปล่า แม้หลังจากเปิดพวกเขา
cregox

อ่าฉันพลาดลิงค์ของคุณไปที่ @ JacobJanTuinstra เป็นคำตอบที่ยอดเยี่ยมเกี่ยวกับวิธีการสร้างห้องสมุด ความผิดฉันเอง. คุณได้อ่านเอกสารแล้วไม่ต้องสงสัย แต่ฉันไม่แน่ใจว่าฉันเข้าใจสิ่งที่คุณหมายถึงโดยการแบ่งปันแล้ว คุณต้องการแบ่งปันสคริปต์ของคุณกับผู้ใช้อื่นหรือไม่?
Vidar S. Ramdal

สำหรับไฟล์ในโฟลเดอร์ของฉันใช่ไฟล์เหล่านั้นดูเหมือนจะว่างเปล่า แต่นั่นเพราะสเปรดชีตมีความว่างเปล่า - มีอะไรให้กับพวกเขายกเว้นสคริปต์ ในการใช้สเปรดชีตของฉันคุณต้องคลิกลิงก์ด้านบนคลิกที่ไฟล์ (ว่าง) ไฟล์ใดไฟล์หนึ่งจากนั้นเปิดแล้วเลือกไฟล์ -> สร้างสำเนาเพื่อให้คุณมีสำเนาใน Google ไดรฟ์ของคุณเอง ควรคัดลอกไฟล์สคริปต์ที่แนบมาด้วย
Vidar S. Ramdal

ตกลงหลังจากทำสำเนาในที่สุดฉันก็สามารถเห็นสคริปต์ ยังคงมีอะไรที่เรียบง่าย ใช่แชร์กับผู้ใช้คนอื่น การคัดลอกและวางทำได้ดีและเรียบง่าย แต่ก็บ้าๆบอ ๆ เกินไป ฉันยังต้องวางลงในไฟล์และคัดลอกผู้ใช้คนอื่นจากมัน! ฉันแทบจะไม่เข้าใจว่าทำไมเราจึงไม่สามารถใช้ไฟล์ได้ ...
cregox

2

คำตอบสั้น ๆ

เผยแพร่สคริปต์ของคุณเป็นส่วนเสริม โปรดทราบว่าคุณสามารถทำให้เป็นสาธารณะไม่อยู่ในรายการหรือเป็นส่วนตัวแชร์กับ Google Group

คำอธิบาย

แกลลอรี่สคริปต์ถูกแทนที่ด้วยโปรแกรมเสริมที่ถูกเพิ่มในปี 2014

ในการเผยแพร่ Add-on คุณควรชำระค่าธรรมเนียม 5 ดอลลาร์เพื่อให้สามารถเผยแพร่ Add-on ไปยัง Chrome Web Store หากคุณจะทำให้ส่วนเสริมสาธารณะควรได้รับการตรวจสอบโดย Google ก่อนเผยแพร่สู่สาธารณะ แต่ถ้าคุณกำหนดให้เป็นส่วนตัวในกลุ่ม Google กลุ่มนั้นจะสามารถใช้งานได้หลังจากไม่กี่นาที

อีกทางเลือกหนึ่งในการเผยแพร่ Add-on ของคุณคือการใช้คุณลักษณะการทดสอบ Add-onแต่มีข้อ จำกัด บางอย่างเช่นทริกเกอร์ "to test" ที่ไม่สามารถทำได้ซึ่งขึ้นอยู่กับสคริปต์ของคุณอาจเป็นข้อ จำกัด ที่สำคัญหรือไม่

การใช้แอดออนนั้นดีกว่าการใช้ไลบรารี่เพราะไลบรารี่อาจทำให้สเปรดชีตของคุณช้าลง แต่เป็นพิเศษเพราะจากมุมมองของผู้ใช้ปลายทางการใช้เพิ่มและใช้งานนั้นง่ายกว่าการเพิ่มโปรเจ็กต์สคริปต์เพิ่ม รหัสที่จำเป็นในการเรียกห้องสมุดและเพิ่มห้องสมุดเอง

ข้อได้เปรียบสำหรับผู้สร้างแอดออนอาจเป็นข้อเท็จจริงที่ว่าผู้ใช้แอดออนจะไม่สามารถดูโค้ดแอดออนจากแอดออนเองได้

ในทางกลับกันมันต้องการรูปภาพที่มีรูปแบบและขนาดที่ต้องการซึ่งอาจซับซ้อนเกินไปสำหรับการใช้งานบางกรณีและในที่สุดเราก็สามารถพิจารณาได้ว่าการทำสำเนา / วางสคริปต์ของเราหรือทำสำเนาสเปรดชีต (เอกสาร / แบบฟอร์ม / Presentation) เป็นคำตอบที่ตรงไปตรงมาสำหรับกรณีการใช้งานเหล่านั้น

อ้างอิง


2

คุณควรลองใช้ Google Claspที่กำลังพูดถึง

Drive ID ของไฟล์พาเรนต์ที่โปรเจ็กต์สคริปต์ที่สร้างถูกผูกไว้กับ

ไม่ได้ลอง แต่ดูเหมือนว่ามีคำสั่งสำหรับดึงรหัสสคริปต์โครงการสร้างและอัปเดต:

  • ดึง: ดึงโครงการจาก id สคริปต์ที่ให้หรือบันทึกไว้ อัพเดตไฟล์โลคัลด้วยโปรเจ็กต์ Apps Script
  • พุช: บังคับให้เขียนไฟล์โลคัลทั้งหมดไปยังเซิร์ฟเวอร์การจัดการสคริปต์
  • สร้าง: สร้างโครงการสคริปต์ใหม่ (ด้วยรหัสโครงการหลักที่เป็นตัวเลือก ID ไดรฟ์ของไฟล์หลักที่โครงการสคริปต์ที่สร้างขึ้นถูกผูกไว้กับ)

2
ขอบคุณสำหรับการสนับสนุนนี้ Masson! ฉันพบว่ามันค่อนข้างน่าสนใจแม้ว่าฉันจะไม่สามารถทดสอบได้ตลอดเวลาเร็ว ๆ นี้ :) ไม่ว่าในกรณีใดคุณสามารถอธิบายเพิ่มเติมเกี่ยวกับวิธีแก้ปัญหาด้วยการจับมือได้ไหม? เป็นความคิดที่ดีที่จะเก็บคำตอบไว้ในตัวเองเพื่อใช้อ้างอิงในอนาคตในกรณีที่ลิงก์เสียหายหรือเปลี่ยนแปลงด้วยวิธีการที่สำคัญ
cregox

1

ครึ่งทางคือดาวน์โหลดไฟล์จากโครงการของคุณ

โซลูชัน # 1

ฉันพบเครื่องมือเพื่อให้บรรลุสิ่งนี้:

http://googleappsscriptexport.trototype.com/ โดยkerem tiryaki

  • คุณต้องให้สิทธิ์การเข้าถึงไดรฟ์ของคุณ
  • ในการค้นหาสคริปต์คุณจะต้องคัดลอกรหัสของสคริปต์:

ป้อนคำอธิบายรูปภาพที่นี่

ข้อเสียเปรียบ

GoogleAppsScriptExporterForAll ตอนนี้สามารถเข้าถึงบัญชี Google ของคุณได้ (ต้องลบด้วยตนเอง)

โซลูชัน # 2

ฉันยังใช้ส่วนเสริมนี้เพื่อรวมสคริปต์ Git-Hub และ Google ชีต: https://chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo

หลังจากติดตั้ง addon นี้แล้วคุณจะต้อง:

  1. เข้าสู่ระบบ & กดรหัสของคุณเพื่อ GitHub (ปุ่มจะปรากฏในตัวแก้ไข)
  2. ดาวน์โหลดรหัสของคุณจาก GitHub หากจำเป็น
  3. คุณยังสามารถดึงโครงการจาก GitHub (ผู้ใช้โดยเฉลี่ยจะไม่ทำ)

ข้อเสียเปรียบ

ผู้ใช้ยังคงต้องเปิดตัวแก้ไขสคริปต์และคัดลอกรหัส

ข้อดี

  1. การใช้ Quique ไม่ต้องเล่นกับส่วนเสริม
  2. ง่ายสำหรับผู้ใช้ที่จะคัดลอกหนึ่งสคริปต์แทนที่จะเป็นหลายไฟล์

ขั้นตอนถัดไป

ขั้นตอนต่อไปสำหรับฉันคือ:

  1. รวม*.jsไฟล์ของฉันเป็นไฟล์บรรทัดเดียว ใช้สำเร็จแล้วhttps://jscompress.com/ =)
  2. แบ่งปันไฟล์เดียวกับผู้ใช้ (โพสต์สคริปต์เพื่อ GitHub หรือส่งอีเมลโดยตรง)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.