গুগল ডক্সে চলক হিসাবে বর্তমান তারিখ?


12

গুগল ডক্সে বর্তমান তারিখের জন্য একটি ভেরিয়েবল যুক্ত করা (সন্নিবেশ) করা কি সম্ভব যা আমি যখন নথিটি খোলি প্রতিবার স্বয়ংক্রিয়ভাবে আপডেট হবে?

কিছু মানদণ্ড:

  • তারিখের অবস্থানটি পরিবর্তনশীল হওয়া উচিত, অর্থাত্ তারিখটি আমাকে পৃষ্ঠা / অনুচ্ছেদের একটি পৃথক অবস্থান সন্নিবেশ করার অনুমতি দেয়

  • দস্তাবেজটি এখনও ভাগ করে নেওয়া উচিত, অর্থাৎ আমার দস্তাবেজ খোলার লোকেরাও বর্তমান তারিখের সাথে প্রদর্শিত হবে


বর্তমান তারিখ গণনা করার জন্য কোন সময় অঞ্চলটি ব্যবহার করা উচিত?
রুবনে

এটি বহুমুখী থাকতে, সম্ভবত ব্যবহারকারী নিজেই সেটিংসে সংজ্ঞায়িত হয়েছেন? অথবা এটি কোনওভাবে স্বয়ংক্রিয়ভাবে ব্যবহারকারীর গুগল ডক্স সেটিংস থেকে আনা যায়?
orschiro

1
সবেমাত্র আমার কোডিং প্রয়াস যোগ করেছেন। সময় অঞ্চলটি সম্পর্কে, আমি GMT-5 ব্যবহার করেছি তবে এটি আপনার প্রয়োজনের সাথে সহজেই পরিবর্তন করা যেতে পারে। এটি সম্পূর্ণ সমাধান নয়।
রুবান

উত্তর:


9

সংক্ষিপ্ত উত্তর

এই মুহুর্তে, ভেরিয়েবলগুলি গুগল ডক্স এবং গুগল অ্যাপস স্ক্রিপ্টের অন্তর্নির্মিত বৈশিষ্ট্য নয়, গুগল ডক্স প্রসারিত করার প্ল্যাটফর্ম, সেগুলি পরিচালনা করার জন্য কোনও শ্রেণি বা পদ্ধতি অন্তর্ভুক্ত করে না।

বিকল্প

বিকল্প ঘ

একটি বিকল্প হ'ল পাঠ্য প্যাটার্ন ব্যবহার করা তবে আপনার অবশ্যই নিশ্চিত হওয়া উচিত যে এটি কেবলমাত্র আপনি যে তারিখটি আপডেট করতে চান তার সাথে মিলবে।

বিকল্প 2

আরেকটি বিকল্প হ'ল নামড্রেঞ্জ শ্রেণিটি ব্যবহার করা তবে এটি মনে রাখা

  1. সীমাটি সরিয়ে নিয়ে যাওয়া এটির নাম 1 হারাবে ।
  2. একাধিক উপাদানের সাথে নামযুক্ত পরিসরে পাঠ্য প্রতিস্থাপন করা কেবল প্রথমবারের মতো 2 কাজ করে ।

কোড:

গুগল ডকুমেন্টের সাথে আবদ্ধ কোনও স্ক্রিপ্টে ব্যবহারের উদ্দেশ্যে নিম্নলিখিত কোডটির দুটি প্রধান ফাংশন রয়েছে:

  1. আজকের তারিখ .োকান
  2. আজকের তারিখ আপডেট করুন

ডিবাগিংয়ের জন্য ব্যবহার করা হচ্ছে

  1. তারিখ এবং সময়, কেবল তারিখের পরিবর্তে।
  2. মুখ্য ফাংশনগুলি ট্রিগার করতে কাস্টম মেনুগুলি।

"জ্ঞাত-সমস্যাগুলি": আপডেট ফাংশনটি পুরো অনুচ্ছেদটিকে প্রতিস্থাপন করে।

কোডটি পরীক্ষা করার জন্য, এটি অনুলিপি করুন, তারপরে আপনার গুগল ডক্সে যান, একটি নতুন নথি তৈরি করুন, সরঞ্জাম> স্ক্রিপ্ট সম্পাদক এ ক্লিক করুন, ফাঁকা প্রকল্প নির্বাচন করুন, কোডটি আটকান, প্রকল্পটি সংরক্ষণ করুন, একটি নাম নির্ধারণ করুন, অ্যাপ্লিকেশনটিকে অনুমোদন দেওয়ার জন্য সময় মতো চালান , আপনার ডকটি বন্ধ করুন এবং আবার খুলুন। "ইউটিলিটিস" নামে একটি নতুন মেনু প্রদর্শিত হবে। সেখান থেকে আপনি মূল ফাংশনগুলিতে কল করতে পারেন।

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

function todayDate(){
  return Utilities.formatDate(new Date(), "GMT-5", "yyyy-MM-dd'T'HH:mm:ss'Z'"); // "yyyy-MM-dd"
}

/**
 * Inserts the today's date at the current cursor location and create a NamedRange.
 */
function insertTodayAtCursor() {
  var str = 'testToday';
  var doc = DocumentApp.getActiveDocument();
  var cursor = doc.getCursor();

  if (cursor) {
    // Attempt to insert today's date at the cursor position. If insertion returns null,
    // then the cursor's containing element doesn't allow text insertions.
    var date = todayDate();
    var element = cursor.insertText(date);
    if (element) {
      var rangeBuilder = doc.newRange();
      rangeBuilder.addElement(element);
      return doc.addNamedRange(str, rangeBuilder.build()); 
    } else {
      DocumentApp.getUi().alert('Cannot insert text at this cursor location.');
    }
  } else {
    DocumentApp.getUi().alert('Cannot find a cursor in the document.');
  }
}

function setTodayNamedRange(){
  var str = 'testToday';
  var doc = DocumentApp.getActiveDocument();
  // Retrieve the named range
  var namedRanges = doc.getNamedRanges();
  var newRange = doc.newRange();
  var date = todayDate();
  for(var i=0; i<namedRanges.length; i++){

    if(namedRanges[i].getName() == str){

      var rangeElement = namedRanges[i].getRange().getRangeElements();

      for (var j=0; j<rangeElement.length; j++){

        var element = rangeElement[j].getElement().asText().editAsText().setText(date);
        newRange.addElement(element);
      }
    }
  }
  doc.addNamedRange(str, newRange.build());
}


নীচে বিভিন্ন ধরণের কিছু আইটেম রয়েছে (প্রশ্ন, স্পেসিফিকেশন ইত্যাদি) যা অনুপ্রেরণা পেতে বা "সমাধান" খুঁজতে "সঠিক দিকনির্দেশ" নির্দেশ করতে পারে


পাদটিকা


তার মানে কি এটা সম্ভব নয়?
জ্যাকব জানু টিনস্ট্রা

@ জ্যাকবজানটুইনস্ট্রা: আইএমএইচও, হ্যাঁ, এটি সম্ভব নয়। যা সম্ভব হতে পারে তা হ'ল একটি কাজ খুঁজে পাওয়া তবে এটি আরও প্রসঙ্গের প্রয়োজন। আমি মনে করি যে তথ্যটি জিজ্ঞাসা করা উচিত মন্তব্যগুলিতে করা উচিত, তবে আমি এখনও কোথাও মন্তব্য করতে পারি না :)
রুবুন

1
@orschiro জেনে আমি আনন্দিত যে এটি আপনার পক্ষে কাজ করেছে। ক্রোম এক্সটেনশনে রিফ্যাক্টরের পরিবর্তে গুগল ডক্স অ্যাড-অনে থাকতে পারে, আমার ধারণা।
রুবন

1
@ ক্রিস্টোফারফ্রান্সিসকো: কোডটি সীমিত স্ক্রিপ্টে ব্যবহারের উদ্দেশ্যে করা হয়েছে তবে এটি আপনার অ্যাপ্লিকেশন থেকে ব্যবহারের জন্য রূপান্তর করা যেতে পারে তবে এটি একটি পৃথক প্রশ্ন যে এটি স্ট্যাক ওভারফ্লোয়ের পক্ষে খুব বেশি উপযুক্ত ।
রুবান

1
@ ক্রিস্টোফারফ্রান্সিসকো আমি গুগল ডক্স সম্পাদক ফাইলগুলিতে স্ক্রিপ্ট সীমা সম্পর্কে সরকারী গাইডের একটি লিঙ্ক যুক্ত করেছি।
রুবনে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.