I've found lots of examples of coding the deprecated UIapp forms, but very few using the new FormApp class.
What I need is essentially a Grid control that has text boxes for input in place of radio buttons - a table in other words! I'm finding nothing that shows how to set up a table with positioning or a container.
Any suggestions? Preferably I'd love a link to a site that details lots of examples of coding the FormApp as I'm sure this is just the start of a new learning curve.
Thanks!!
Google's FormApp is limited to a fixed number of Item types - just those that are provided by the Forms Service GUI. There is no way to create custom question types or layouts. I suspect the limited ability to customize is the reason you don't find much effort dedicated to creating script examples.
If the data you are collecting requires a different layout than any of the provided "Items", then your only practical option within the Google Apps Script world is to create a custom interface using UiApp or the HtmlService, and record responses into a spreadsheet.
Alternatively, you can submit a feature request on the Google Apps Script Issue Tracker. However, unless the Item already exists in Google Forms (Google Docs), it's unlikely to get any traction from the Google Apps team. (My opinion - I don't speak for Google.)
Related
I couldn't find any thread in the community about generating a Mekko charts just using GSheets.
Does anyone how we can do that?
Here's how to do it in Excel: https://www.mekkographics.com/how-to-create-a-marimekko-chart-in-excel/
I have figured out how to almost get there with some data processing. For example, let's review the GDP by country and source, to visualize its distribution. I was able to get the Mekko chart, but I'm missing the countries in the X axis.
Here's the data and spreadsheet: https://docs.google.com/spreadsheets/d/1xVFf8_pbVj45W39qDs7MY5cLE_zf1YlJcSzvqWfazg8/edit#gid=1149840583&range=V1
Answer:
Putting the names across the bottom isn't possible in this way, you will either have to do it manually with text boxes or use a chart subtitle to identify each column.
More Information:
There is a great tutorial on how to set up Marimekko charts in Google Sheets here which details how these charts can be made, though the takeaway here is that there isn't a direct way to add axis-labels using the chart itself.
Feature Request:
In this case, I would suggest that you let Google know that this is a feature that is important for Google Sheets and give them the idea to have it implemented.
From the Google Sheet UI (from the page in which you can see an open Spreadsheet), follow the Help > Help Sheets improve menu item and detail in the following Send feedback modal the information for this request.
Google's Issue Tracker also exists as a place for developers to report issues and make feature requests for their development services, though as this is normally for developer tools such as Apps Script or APIs, the best course of action would be the aforementioned Send feedback option from the UI.
There is however an already similar feature request on Issue Tracker asking for the inclusion of Mekko charts in Data Studio - this request can be found here.
I used this code to insert documents directly into a Google spreadsheet without having to upload files and then create hyperlinks. However, as google moved to the new spreadsheet...
Warning: The UI service was deprecated on December 11, 2014. To create user interfaces, use the HTML service instead.
So know I need help fixing lines like; var app = UiApp.getActiveApplication();
If someone could clarify the different types of programming direction you could take this project from, that would also be very helpful, I am not really sure if I need to work with Javascript or HTML now.
The answer to your question will depend in large part on how you are using UIApp. In most cases it's not as simple as changing a few lines of code but more of a script redesign.
If you are using it to create a custom user interface, your path forward would be to rebuild your interface as HTML/Javascript and serve it to the user with HTMLService. The service is overall much more powerful/flexible and provides a better end-user experience but it means rewriting how your script works. If you want to take a look at a helpful example on how the HTML Service works take a look at the HTML Service Guide or this quick-start example of an add on.
You can still link this html interface with your script using the google.script.run service but you will need to redesign your code/application to work with the new input methods. The good news is although UI service will sunset on June 30, 2015, "Service will no longer appear in autocomplete, although existing scripts should still function."
It's worth considering alternate ways to accomplish the same goal. The best way to do that is to start by asking "What is the intended use of this script? What problem does it solve?" There may be a better way to accomplish that task which may not even involve updating the script.
This is not related to the new spreadsheet version, the message you get is because UiApp has recently been deprecated.
A Google search would have shown you a few tracks to find your way.
One of the best I found is this one from Sandy Good : Google apps script UI services to HTML services
It shows a typical example of conversion to HTMLService.
I have a question regarding Google Docs and content controls (if there are any?)
We have a system that lets users design a MS Word doc with content controls (rtf text, comboboxes etc) and assign an ID to the control so that our system can pull the ID and register the answer. The data is then saved in a database.
What is a content control?
So my question is, is there any way to acheive this with google docs? I've been looking around but were unable to find a satisfying answer.
I would like to present users with a document in google docs that they fill in and return to me.
It does not have to be controls, but maybe sections that I can identify and pull content from with googles API.
You have couple of options:
Use the Form option in Google Spreadsheet. Check their tutorial at: http://support.google.com/docs/bin/answer.py?hl=en&answer=87809. They have a nice set of controls (checkbox, multiple choice...). You are getting the benefits of automatic update of the forms into the spreadsheet; no need to create a database...
A bit more complex (but still simple) option is to use Google Apps Script to write a small application GUI that works with the spreadsheet. You get more control over the GUI and all the benefits of automatic data storage, triggering events on each form submission etc. Check out this advanced tutorial: http://code.google.com/googleapps/appsscript/articles/building-sites-app.html
I would like to (programmatically) convert a text file with questions to a Google form. I want to specify the questions and the questiontypes and their options. Example: the questiontype scale should go from 1 to 7 and should have the label 'not important' for 1 and 'very important' for 7.
I was looking into the Google Spreadsheet API but did not see a solution.
(The Google form API at http://code.lancepollard.com/introducing-the-google-form-api is not an answer to this question)
Google released API for this: https://developers.google.com/apps-script/reference/forms/
This service allows scripts to create, access, and modify Google Forms.
Until Google satisfies this feature request (star the feature on Google's site if you want to vote for it), you could try a non-API approach.
iMacros allows you to record, modify and play back macros that control your web browser. My experiments with Google Drive showed that the basic version (without DirectScreen technology) doesn't record macros properly. I tried it with both the plugin for IE (basic and advanced click mode) and Chrome (the latter has limited iMacro support). FYI, I was able to get iMacros IE plug-in to create questions on mentimeter.com, but the macro recorder gets some input fields wrong (which requires hacking of the macro, double-checking the ATTR= of the TAG commands with the 'Inspect element' feature of Chrome, for example).
Assuming that you can get the TAG commands to produce clicks in the right places in Google Drive, the approach is that you basically write (ideally record) a macro, going through the steps you need to create the form as you would using a browser. Then the macro can be edited (you can use variables in iMacros, get the question/questiontype data from a CSV or user-input dialogs, etc.). Looping in iMacros is crude, however. There's no EOF for a CSV (you basically have to know how many lines are in the file and hard-code the loop in your macro).
There's a way to integrate iMacro calls with VB, etc., but I'm not sure if it's possible with the free versions. There's another angle where you generate code (Javascript) from a macro, and then modify it from there.
Of course, all of these things are more fragile than an API approach long-term. Google could change its presentation layer and it will break your macros.
Seems like Apps Script now has a REST API and SDK's for it. Through Apps Script you can generate Google Forms. This API was really hard to find by trying to google for it and I haven't yet tested it myself, but I am going to build something with it today (hopefully). So far everything looks good.
EDIT: Seems like the REST API I am using works very well for fully automated usage.
In March(2022) google released REST API for google form. API allows basic crud operation & also added support for registering watches on the form to notify whenever either form is updated or a new response is received.
As of now (March 2016), Google Forms APIs allow us to create forms and store them in Google Drive. However, Forms APIs do not allow one programmatically modify the form (such as modify content, add or delete questions, pre-filled data, etc). In other words, the form is static. In order to serve custom, external APIs are needed.
I'm trying to work out the best way to display a Google Spreadsheet in the members section of a website.
Although the info in the spreadsheet isn't hugely sensitive, I'm not keen on publishing it and embedding it using an iFrame, so am trying to find a way to embed the spreadsheet while still keeping it private.
I've tried using the Spreadsheets API (via the PHP Zend library) with some success, but it seems to fall apart if a lot of the cells are empty. As I'd also ideally like to keep any cell styling, does anyone know of a way to embed the spreadsheet via an iFrame or similar without publishing it?
Any PHP/Javascript solutions most welcome!
Well if it's a member's area - you can use the GDATA AUTH method (part of the php Zend Library) to ensure authentication - even if it is private (you don't need to publicly publish your spreadsheet) - I'm sure you already know this.
If you just want to pull the data - the documents list query and then by use of tables and add CSS to it to retain styling can help.
google: google spreadsheet api IBM - and there's a tutorial that shows a few examples. Hope that helps.