Add custom functions to Sheets from Workspace addon - google-workspace-add-ons

I have a Google Sheets add-on that provides some custom functions along with other functionality exposed in the sidebar. This is working fine. I also have some other miscellaneous scripts for Docs, Slides, etc. I would like to combine all of these into a single Google Workspace add-on so that people in my company only need to install one single add-on instead of multiple.
From what I've read I can understand how to migrate all of my existing functionality into a Workspace add-on except the Sheets custom functions. I have not been able to find documentation that definitively says if that is possible or not.
So, my question is, is it possible to make custom functions available to Google Sheets from a Google Workspace add-on? If not, what is the best way to request this to Google?

Related

Can Google Sheets be set up to propogate templates to existing children based on them?

I'm working for a company who want me to move their shared drive (NAS) to Google Drive get us working collaboratively.
Currently we have a central spreadsheet which has a bunch of information about each aircraft we work on, which mail merges into word docs. When we need to do a specific thing (like weigh the aircraft) we need to generate a document to store with the details on it. We open a template word doc and use the mail merge deature to find the reg of the aircraft and Word's mail merge pulls in the rest of the info into the doc. Great stuff!
We're moving to Google Drive to work more collaboratively. Is there a way of doing this same thing on GDrive? I can see ways of having a google sheet pull info from a master spreadsheet in this way, but not google Docs (which will work better because of the way you can format tables).
My research shows that this is easy with a google sheet but I need to use a google doc really, for the formatting flexibility.

What is the simplest way to distribute Google Workspace Add-ons within an organization?

I often have to create small extensions for Google Workspace Apps ( Docs, Slides, Gmail etc) which I want to give some users access to. Sometimes only a selected number of users needs them, often only for a specific use case.
Those users are often not very technical experienced so I want to have a very simple setup process for them which does not include copying Appscript files from one place to another, or having a 10 step instruction.
The best solution I came up is to always create a Google Workspace Add-on (even when a simple editor script would also work) and share the AppScript Project with those user who want the Add-on. Then those users need to install it as a test deployment from the AppScript project.
This is not an ideal solution since I actually don't want to give those users access to the Appscript Project and source code.
Publishing the Add-on within the organisation would result in a better user experience since most users know how to install addons from the marketplace but since every Add-on would need a seperate gcp project this is way to much overhead for simple scripts.
Is there any better solution to this?

Google Sheets Sentiment Analysis

How can I utilize the Google Cloud Natural Language API to perform sentiment analysis for text in a Google Sheet?
Is there an integration available or is there a proper way to integrate their REST API?
I was able to hack something together using Google Apps Script.
You can make a copy of:
https://docs.google.com/spreadsheets/d/1VPOckCelGrjMoF8llnpE6IEM-UybwT6wrYb5BxVERIw/edit?usp=sharing
Be sure to go into the script editor (Tools⇒Script Editor...) and specify your GOOGLE_CLOUD_API_KEY via Script Properties (File⇒Project Properties, Script Properties).

API for Creating/Editing Google Slides

Does Google offer a REST or Javascript API for creating and editing slides? I've been able to figure out how to interact with sheets and most of the other services offered as part of Docs/Drive, but haven't had any luck with Slides.
If there is no API, I'd be willing to create files directly myself, but I haven't been able to find any documentation on a Slides file format.
The Google Slides API was launched on 11/9/2016. It provides the ability to read, create, and edit Google Slides presentations.
I was looking into this too. Looks like it's been a requested feature since at least 2012, follow Issue Tracker Link
Right now the best I know of is to automate making a powerpoint file (e.g. use this library for python) and then upload it to google drive where it will autoconvert. Obviously there are many limitations to this strategy, but in a quick test it worked fine for something simple.
I would also love if Google provided an API that allows making slides like the various API calls for microsoft office.

Is it possible to read a Google Spreadsheet from (server-VM-run) Dart code?

I'd like to read data from a Google Drive Spreadsheet in Dart code (running as a console app in the VM, not in the browser). I'm somewhat confused by the names of the API; Sheets is part of Google Drive, but all the Google Drive API docs I can find relate to integrating the UI of Drive into your app.
There's also this question on SO, but it's over 2 years so I'm hoping that it's no longer correct, and there is an API.
I found this Dart Google API library, but it says:
THIS LIBRARY IS DEPRECATED
Please use the Google API Dart libraries in http://pub.dartlang.org, the Dart package manager
Search for 'google' or the API of your choice. For example:
http://pub.dartlang.org/packages/google_drive_v2_api
However I'm struggling to find which package I'm supposed to use. The Drive API one doesn't have a lot of info, and there doesn't appear to be one with "Sheets" or "Docs" in the name.
You need to use the Spreadsheet API https://developers.google.com/google-apps/spreadsheets/.
There isn't a Dart lib for it, but it's a well formed REST API so very easy to program against.
Sheets is not exactly part of Google Drive, it is part of the Google Docs productivity suite that is stored in Google Drive. Google Drive is the general cloud storage layer. The Drive API is for interacting with files of all types that are stored in Drive. You can interact with Sheets files using that API to modify metadata or import or export to/from other formats like csvs. That is possible to do from Dart (I'm not sure if there is a Dart-specific client library, but this API is just rest calls so its always possible.)
If you want to interact with a Sheet at a lower level to do things like modify a single cell, you can use AppScript, however that cannot be done from Dart.
Usually for Google APIs support generators that create access libraries for every language.
For example https://pub.dartlang.org/packages/google_drive_v2_api.
You can generate them yourself (also for your own endpoints) using https://pub.dartlang.org/packages/discovery_api_client_generator but for most APIs there are packages already in pub.dartlang.org.

Resources