Utilize an undefined importdata function in a Google script

I have been keeping track of various asset prices including crypto on a Google Sheet. One convenient way to fetch crypto prices is by importing data from cryptocurrencies.cc:

=importdata("https://cryptoprices.cc/AION/");

However, I realized that my spreadsheet is now dependent on the cryptoprices.cc website. If it ever goes offline or changes its domain, I would need to manually update every URL in my sheet, which could be quite cumbersome. That's why I came up with an idea to create a wrapper function:

function cryptofinance(token) {
   return importdata("https://cryptoprices.cc/"+ token);
}

Unfortunately, this resulted in an error message:

ReferenceError: importdata is not defined (line 94).
It seems like Google Sheet functions cannot be called outside of the Sheets cells, am I correct?

If yes, what is the correct way to utilize the importdata function within this custom function? If no, then what would be the most effective alternative method to retrieve the same information using JavaScript?

Answer №1

Importdata cannot be used as a formula in this specific context. First, you must obtain the cell reference and then insert the formula inside the setValue() function.

var selectedCell = SpreadsheetApp.getCurrentCell(); // Choose the desired cell 
selectedCell.setValue('=importdata("https://cryptoprices.cc/"+ token)');

To select a range of cells, utilize the getRange() function.

SpreadsheetApp.getRange(row,col).setValue('=importdata("https://cryptoprices.cc/AION/")');

Adjust the values for row and col to specify the range of cells.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

In terms of function efficiency, what yields better results: using conditional execution or employing conditional exit?

Feedback is welcomed on the efficiency of the following JavaScript/TypeScript solutions: function whatever(param) { if (param === x) { doStuff(); } } or function whatever(param) { if (param !== x) { return false; } doStuff(); } The se ...

A guide on manipulating an input field to trigger md-datepicker upon clicking

What is the best way to convert an input text into a fire md-datepicker and achieve a similar result like this? ...

Using JSON formatting with NVD3 charts

Is there a method to transform my JSON data into a format that NVD3 will accept for a multi bar chart? I have a template set up in NVD3 here: http://jsfiddle.net/hohenheim/6R7mu/5/ The JSON data I want to display is as follows: [{"date": 1396828800, "imp ...

Is there a way to activate a function in one component from another within a Next.js application?

As mentioned in the title, I am working with 2 custom components within a basic NextJS application: <section> <CompA></CompA> <CompB></CompB> </section> I am trying to figure out how to have a button inside Comp ...

Automatically populate textboxes with database information based on selected combobox item without the need to refresh the page

I would like to implement a feature where textboxes are automatically filled from a database when a user selects an option from a combo box. This can be achieved using jQuery or JavaScript in PHP. Once a user selects an element, the corresponding text sh ...

I am currently having trouble with req.query not functioning correctly within Next.js for reading query parameters

I am facing an issue while working with a REST API in Next.js 13. I have created the API, which can be accessed at http://localhost:3000/api/portfolio. However, when I try to filter the data using query parameters like http://localhost:3000/api/portfolio?s ...

Registration form input field in ReactJS keeps losing focus with every keystroke

Currently, I am in the process of creating a registration form for a website. I have implemented the handleChange function to alter the input text in the regData state. However, I am encountering an issue where every time I type something into an input fie ...

displaying information in table cells with jquery

Is there a way to display a table inside a td element with an on-click function without showing all tables in the same column when the function is triggered? I want the table to be shown only for the specific td that was clicked. $(document).ready(funct ...

Conceal additional recipients in the "to" address field when sending emails with Node.js using Nodemailer

I am currently working on a project called EmailSender using node.js, and I have found that the nodemailer package is incredibly helpful. However, when sending emails to multiple contacts, all recipients are able to see each other's email addresses i ...

Display script based on inner width - avoiding the use of "potentially harmful request.form"

What I'm Seeking: In order to display affiliate ads on my responsive website, I need to load different javascripts based on the innerwidth property using jQuery. However, attempting to load these scripts in hidden fields and dynamically swapping them ...

Utilize a Bootstrap select dropdown menu to modify search parameters

Is there a way to update multiple child dropdowns based on the selection in the main dropdown? In the image below, the search criteria that changes is highlighted in red (these are separate dropdowns depending on the main dropdown selection). How would y ...

What steps are involved in utilizing a custom filter within ng-pluralize based on the count parameter?

<ng-pluralize count="data.amount | customFilter" when="{1: 'one item', 'other': '{} items'}"> </ng-pluralize> Is it possible to apply a custom filter to the count property? The customFilter function should return ...

Step-by-step guide on redirecting a page using AJAX while also sending data to a controller

Is it possible to redirect to another page after a successful action, but not able to retrieve the data that was passed? Here is the jQuery code: $.ajax({ type:'GET', url:link, data:data, success:functio ...

Tips on stopping slideToggle from opening and closing when clicked for the first time

When using the slideToggle function, I'm encountering an issue where the content div briefly shows on the first click but then immediately slides closed. Subsequent clicks work as expected and slide open correctly. This is the Jquery script I have be ...

Is it possible to create a fixed position shader background in three.js?

Trying to incorporate a pixel shader as a background in three.js without affecting the camera rotation with OrbitControls. Most implementations use a 2D plane, but I want it to remain fixed in the scene. Is there a way to achieve this with two separate can ...

What is the best method for obtaining the link URL using JavaScript?

Below is the code I am currently working with: <?php $i = 0; foreach($this->list as $l) { $link = JRoute::_("index.php?option=com_ecommerce&view=detail&id=$l->id"); <div class="quickview" id="quickview_<?php echo $i;?>"> < ...

Unresolved styles in React component linked to styles.css file

As I dive into creating a registration page in ReactJS, I encounter a frustrating issue with my styles not applying correctly from the styles.css file. Let's take a look at my RegisterPage.jsx component: export default function RegisterPage() { ret ...

How can I track the source of inbound network traffic using node.js and express?

Currently, I'm attempting to make use of railway's latest app sleeping feature that automatically puts your active deployment to sleep after 10 minutes of no outbound network activity. This feature then wakes up your server upon receiving any inb ...

Issue with displaying checkboxes in the dataTable table

I am currently working with dataTables and encountering difficulties displaying checkboxes on my tables. Below is the code that I have: <table id="employeeList" class="table table-sm table-bordered table-hover" cellspacing="0" width="200%"> &l ...

Exploring the Surface Details of Objects in THREE.js Using Object Loader

When using the Object Loader in THREE.js to load a model of a tree, I have encountered an issue where no texture is loaded with it. Instead, it just appears as a simple tree with white light on it. The code I am using for this is: var loader = new THREE.O ...