เป็นไปได้หรือไม่ที่จะฝัง Google Spreadsheet ลงใน Google Document à la Microsoft Excel และ Microsoft Word แล้วแผนภูมิจากสเปรดชีตล่ะ
เป็นไปได้หรือไม่ที่จะฝัง Google Spreadsheet ลงใน Google Document à la Microsoft Excel และ Microsoft Word แล้วแผนภูมิจากสเปรดชีตล่ะ
คำตอบ:
ตั้งแต่วันนี้ (2016-05-20) เมื่อวันที่ Google เริ่มที่จะแผ่ความสามารถในการฝังแผนภูมิจากสเปรดชีตของ Google ลงในเอกสารของ Google ณ จุดนี้บัญชี Google สองในสามของฉันมีตัวเลือกให้ใช้งานในInsert
เมนูโดยมีInsert→Chart
เมนูย่อยใหม่ใต้Insert→Drawing…
รายการ
เมื่อคุณแทรกแผนภูมิดังกล่าวแผนภูมิเหล่านั้นจะยังคงเชื่อมโยงกับสเปรดชีตดั้งเดิม หากสิ่งที่คุณต้องการคือข้อมูลแบบตารางมีประเภทแผนภูมิตารางที่คุณสามารถใช้เพื่อนำเสนอข้อมูลของคุณเป็นตารางแบบง่าย
มีข้อ จำกัด บางประการในขั้นตอนนี้ (เช่นเกี่ยวกับขนาดของแผนภูมิ) และแผนภูมิจะต้องมีอยู่ในสเปรดชีตก่อนที่คุณจะสามารถแทรกได้ แต่สิ่งนี้จะไปในทิศทางที่ถูกต้อง ...
ในการแทรกสเปรดชีตหรือตารางให้ใช้เพิ่มตารางจาก Google ชีตโดยการคัดลอกวางจากชีตไปยังเอกสารและเลือกตัวเลือกที่เชื่อมโยง
แผนภูมิจะไม่ได้รับการอัปเดตหากคุณแก้ไขสเปรดชีตต้นทางในขณะที่เปิดเอกสารอย่างไรก็ตามเอกสารจะตรวจจับการเปลี่ยนแปลงและให้ปุ่มอัปเดตเหนือสเปรดชีตแบบฝังเพื่อสะท้อนการเปลี่ยนแปลงล่าสุดในแหล่งที่มา
AFAIK คุณสามารถคัดลอกและวางจากสเปรดชีตไปยังเอกสารข้อความได้เท่านั้น สเปรดชีตถูกแทรกเป็นตาราง แต่ไม่ได้เชื่อมโยง: หากคุณเปลี่ยนบางสิ่งในสเปรดชีตมันจะไม่ปรากฏในเอกสารข้อความ
แน่นอนฉันชอบที่จะพิสูจน์ว่าผิด!
นี่คือโซลูชันที่อิงกับสคริปต์ซึ่งอนุญาตให้หนึ่งแทรกตารางที่มีเนื้อหาจากช่วงที่กำหนดภายในสเปรดชีตที่กำหนด ฉันไม่ได้พยายามหาวิธีในการซิงค์ข้อมูลแบบเรียลไทม์เนื่องจากดูเหมือนว่าไม่สามารถใช้งานได้จริงเนื่องจากมีข้อมูลจำนวนมากที่อาจต้องถูกถ่ายโอนพร้อมการแก้ไขทุกครั้งในสเปรดชีต สคริปต์จะเพิ่มรายการเมนูแบบกำหนดเอง "update data" ลงในเอกสารแทน
สคริปต์ควรเชื่อมโยงกับเอกสาร (เช่นสร้างโดยใช้เครื่องมือ> เครื่องมือแก้ไขสคริปต์ในเมนูเอกสาร) URL สเปรดชีตรวมถึงชีตและช่วงที่ใช้จะถูกระบุไว้ในสคริปต์ การฝังข้อมูลทั้งหมดบนแผ่นแทนที่ด้วย.getRange(rangeName)
.getDataRange()
เมื่อมีการดำเนินการฟังก์ชั่น updateData ครั้งแรกมันจะผนวกตารางท้ายเอกสาร ในการรันครั้งต่อไปมันจะอัพเดตตารางในตำแหน่ง (เช่นหากมีการเพิ่มข้อความเพิ่มเติมหลังตารางคำสั่งจะถูกเก็บไว้)
โปรดทราบว่าการตัดการวางตารางจะทำให้กระบวนการอัปเดต (สคริปต์จะเพิ่มตารางใหม่ในตอนท้าย) เนื่องจากสำเนาที่วางเป็นวัตถุใหม่ ให้วางข้อความรอบ ๆ ตารางแทน
function onOpen() {
DocumentApp.getUi()
.createMenu('Custom')
.addItem('Update Data', 'updateData')
.addToUi();
}
function updateData() {
var ssUrl = ' spreadsheet url here ';
var sheetName = 'Sheet2'; // name of sheet to use
var rangeName = 'A1:C3'; // range of values to include
var values = SpreadsheetApp.openByUrl(ssUrl)
.getSheetByName(sheetName)
.getRange(rangeName)
.getValues();
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var ranges = doc.getNamedRanges('embeddedSheet-range');
if (ranges.length == 0) {
var table = body.appendTable(values);
}
else {
tableRange = ranges[0];
table = tableRange.getRange().getRangeElements()[0].getElement();
var ind = body.getChildIndex(table);
tableRange.remove();
body.removeChild(table);
table = body.insertTable(ind, values);
}
var rangeBuilder = doc.newRange();
rangeBuilder.addElement(table);
doc.addNamedRange('embeddedSheet-range', rangeBuilder.build());
}
นอกจากนี้ยังเป็นไปได้ที่จะซิงค์ข้อมูลทุกชั่วโมงนอกเหนือไปจากด้วยตนเอง เพียงเพิ่มทริกเกอร์ตามเวลาจากเมนูทรัพยากรของตัวแก้ไขสคริปต์เพื่อที่จะเรียกใช้ฟังก์ชัน updateData
ท่านสามารถปรับสคริปต์นี้เพื่อผูกกับสเปรดชีตแหล่งที่มาแทน สิ่งนี้จะต้องมีการเปลี่ยนแปลงวิธีการเปิดเอกสาร (เช่นตาม URL) แต่ไม่เช่นนั้นตรรกะจะเหมือนกัน
ส่วนที่ยุ่งยากของสคริปต์กำลังได้รับหมายเลขอ้างอิงของตารางที่มีอยู่ในเอกสาร ต้องมีการวางไว้ในช่วงของชื่อ นอกจากนี้ยังเป็นการสมควรที่จะแทนที่องค์ประกอบของตารางอย่างสมบูรณ์มากกว่าที่จะยุ่งกับรายการของตารางที่มีอยู่ เนื่องจาก Named Range นั้นไม่เปลี่ยนรูปก็จะถูกลบออกด้วยตารางที่มีและจากนั้นสร้างขึ้นอีกครั้งพร้อมกับตารางใหม่
/edit#gid=0
เนื้อหาในตอนท้าย
ใช่คุณสามารถ. คัดลอกเนื้อหาของชีตและวางลงในเอกสารของคุณที่มุมด้านขวามันจะถามว่าคุณต้องการเชื่อมโยงไปยังสเปรดชีตหรือไม่ หากคุณทำหลังจากแก้ไขสเปรดชีตแล้วคุณสามารถคลิกไอคอนอัปเดตในเอกสารของคุณเพื่อรวมการเปลี่ยนแปลงในเอกสารของคุณ
อีกทางเลือกหนึ่งคือการใช้ Google Sites หรือโปรแกรมแก้ไขเนื้อหาอื่น ๆ ที่อนุญาตให้ฝังเนื้อหา iframes
เพื่อฝัง Google สเปรดชีตในหน้าของ Google Sites