มีวิธีแทรกวันที่วันนี้ลงใน Google เอกสารหรือไม่


75

ฉันดูส่วนแทรก> ... หรือยัง แต่ไม่พบอะไรเลย

สิ่งนี้สามารถทำได้ผ่านฟังก์ชั่น inbuilt หรือสคริปต์ที่กำหนดเอง?


11
ฉันตกใจที่ Google เอกสารยังไม่มีคุณสมบัตินี้ ดูเหมือนว่าหนึ่งในสิ่งพื้นฐานที่สุดที่ควรมีโปรแกรมประมวลผลคำที่ทันสมัย
LS

หากคุณต้องการใช้สเปรดชีต paste = TODAY () ในเซลล์ ฉันรู้คำถามเกี่ยวกับ google-docs แต่ก่อนอื่นใน google ถ้า google สำหรับสเปรดชีต
Fortran

"= TODAY ()" ใช้งานได้ดี
Jackssn

=TODAY()ไม่ทำงานสำหรับการบันทึกเนื่องจากมันจะอัปเดตเป็นวันที่ปัจจุบันทุกครั้งที่มีการเปิดหน้าเว็บ เวลาส่วนใหญ่ฉันต้องการบันทึกวันที่ปัจจุบันและไม่อัปเดต หากคุณต้องการแทรกวันที่วันนี้สำหรับไฟล์บันทึกคุณต้องมีอย่างอื่น
Hephaestus

คำตอบ:


66

เป็นไปได้ที่จะแทรกวันที่วันนี้ผ่านมาโคร

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

วางสคริปต์นี้และบันทึกเป็นDate Macroหรือบางอย่าง: (มีให้ที่นี่ด้วย )

/**
 * The onOpen function runs automatically when the Google Docs document is
 * opened. Use it to add custom menus to Google Docs that allow the user to run
 * custom scripts. For more information, please consult the following two
 * resources.
 *
 * Extending Google Docs developer guide:
 *     https://developers.google.com/apps-script/guides/docs
 *
 * Document service reference documentation:
 *     https://developers.google.com/apps-script/reference/document/
 */
function onOpen() {
  // Add a menu with some items, some separators, and a sub-menu.
  DocumentApp.getUi().createMenu('Utilities')
      .addItem('Insert Date', 'insertAtCursor')
      .addToUi();
}

/**
 * Inserts the date at the current cursor location in boldface.
 */
function insertAtCursor() {
  var cursor = DocumentApp.getActiveDocument().getCursor();

  if (cursor) {
    // Attempt to insert text at the cursor position. If insertion returns null,
    // then the cursor's containing element doesn't allow text insertions.
    var date = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd"); // "yyyy-MM-dd'T'HH:mm:ss'Z'"
    var element = cursor.insertText(date);
    if (element) {
      element.setBold(true);
    } else {
      DocumentApp.getUi().alert('Cannot insert text at this cursor location.');
    }
  } else {
    DocumentApp.getUi().alert('Cannot find a cursor in the document.');
  }
}

ตอนนี้รีเฟรชหรือเปิดเอกสารของคุณและรายการเมนูใหม่จะปรากฏขึ้น: ยูทิลิตี้ ภายใต้เมนูนี้รายการจะปรากฏขึ้นที่เรียกว่าแทรกวัน คลิกที่เพื่อแทรกวันที่ตำแหน่งเคอร์เซอร์ของคุณ

ในการเปลี่ยนรูปแบบของวันที่คุณต้องเปลี่ยน“ รูปแบบ” ที่ใช้ในสคริปต์ รูปแบบสามารถมีอักขระต่อไปนี้:yyyy-MM-dd'T'HH:mm:ss'Z'

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


1
นี้จะพบในขณะนี้ภายใต้เครื่องมือ> แก้ไขสคริปต์ ...
เมีย

2
เป็นค่าเริ่มต้นที่ "GMT" หากคุณดูบรรทัดที่มี: Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");เป็นไปได้ที่จะเปลี่ยน GMT เป็นเขตเวลาที่เลือก
โทมัส Wiersema

1
ฉันได้ทำหน้าที่คล้ายกันสำหรับ SpreadsheetApp (เพื่อแทรกวันที่ในเซลล์ที่ใช้งานอยู่) คุณสามารถค้นหาได้ที่นี่: gist.github.com/Eccenux/712ae3d7913e971e46035546b2ccc85b
Nux

1
ทีนี้มีวิธีใดที่จะบังคับให้สคริปต์แทรกในเอกสารทั้งหมดที่สร้างในองค์กรโดยอัตโนมัติหรือไม่?
Michael

1
มีวิธีใดที่จะทำให้สคริปต์นี้เป็น "ทั่วโลก" เพื่อให้ Google Doc ทุกคนที่ฉันสร้างหรือเปิดสคริปต์จะมีและสามารถเข้าถึงได้หรือไม่?
Taptronic

1

หากคุณยินดีที่จะใช้โปรแกรมบุคคลที่สามฉันใช้ Dash - http://kapeli.com/dash - พร้อมด้วยข้อมูลวันที่และเวลา มันจะแทนที่ตัวอย่างของคุณโดยอัตโนมัติ (ของฉันคือ 'datetime') กับวันที่และเวลาปัจจุบัน ระบบนี้ทำงานได้ทั่วถึง

ขีดกลางพร้อมใช้งานสำหรับ OS X และ iOS เท่านั้น


1
Dash ไม่ได้ทำงานกับ Google เอกสาร
Rubén

@ Rubén - ฉันเพิ่งตรวจสอบ มันใช้งานได้ดี คุณต้องพิมพ์ทางลัดของคุณ ตัวอย่างเช่นฉันมี @@ สำหรับอีเมลของฉัน เมื่อคุณพิมพ์ Dash นั้นจะแทนที่ด้วยข้อความของคุณ
Joshua Dance

Google เอกสารไม่ได้อยู่ในหน้าเชื่อมโยงในคำตอบของคุณดูเหมือนว่า Dash จะพร้อมใช้งานสำหรับ OS X และ iOS เท่านั้น คุณรู้หรือไม่ว่าสามารถใช้งานกับระบบปฏิบัติการอื่นได้
Rubén

1
@ Rubén - รายการคือเอกสาร API สำหรับการเขียนโปรแกรมที่มาใน Dash Dash ใช้งานได้ทุกที่กับการป้อนข้อความ และมีโปรแกรมที่สมบูรณ์แบบอัตโนมัติที่คล้ายกันสำหรับ OS อื่น ๆ
Joshua Dance

0

นี่คือเวอร์ชันที่แก้ไขของฉันสำหรับออกเดทหัวจดหมาย

มันพิมพ์วันที่ปัจจุบันเช่น '14, สิงหาคม, 2015 'ในเขตเวลา "GMT + 2" ด้วยตัวอักษร' Cambria 'ในขนาด 11

ดูต่อไปนี้:

function onOpen() {
  // Add a menu with some items, some separators, and a sub-menu.
  DocumentApp.getUi().createMenu('Utilities')
      .addItem('Insert Date', 'insertAtCursor')
      .addToUi();
}

// Inserts the date at the current cursor location.
function insertAtCursor() {

  var cursor = DocumentApp.getActiveDocument().getCursor()


  if (cursor) {
    // Attempt to insert text at the cursor position. If insertion returns null,
    // then the cursor's containing element doesn't allow text insertions.
    var dMy = Utilities.formatDate(new Date(), "GMT+2", "dd, MMMMM, yyyy"); 
    var element = cursor.insertText(dMy);
    if (element) {
     element.setFontSize(11).setFontFamily('Cambria');                       
    } else {
      DocumentApp.getUi().alert('Cannot insert text at this cursor location.');
    }
  } else {
    DocumentApp.getUi().alert('Cannot find a cursor in the document.');
  }
}

0

ลืมมาโคร เพียงลิงก์ไปยังเซลล์ใน Google ชีต !

  1. ไปที่Google ชีต
  2. สร้างสเปรดชีต Google ชีตใหม่และตั้งชื่อเป็น "วันนี้"
  3. ในเซลล์ในสเปรดชีตนั้นให้พิมพ์ดังต่อไปนี้: = TODAY ()
  4. เลือกเซลล์นั้นพร้อมกับเซลล์ที่อยู่ติดกัน (ซึ่งทำให้มันเป็นตารางไม่ใช่แค่ข้อความ) คัดลอกเซลล์ที่เลือก (โดยใช้ "แก้ไข" -> "คัดลอก" หรือแป้นพิมพ์ลัด)
  5. เปิดGoogle DocหรือGoogle Slideshowและวางตารางทุกที่ที่คุณต้องการให้วันที่ปัจจุบันปรากฏ

Voila!


4
ขอบคุณ @geekzspot - คุณพูดถึง 'เซลล์' ดังนั้นฉันคิดว่าการพูดคุยเกี่ยวกับสเปรดชีตไดรฟ์ของ Google คุณรู้หรือไม่ว่ามีวิธีการทำเช่นนี้ในเอกสารคำไดรฟ์ของ Google?
แซม

ใช่นี่สำหรับสเปรดชีต ฉันทำให้ชัดเจนขึ้น ขออภัยไม่สามารถใช้งานเอกสารได้
geekzspot
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.