Extract data from Google docs to Google sheets - google-sheets

I am working within the same Google drive folder.
I have a number of Google Docs, which all contains a number of tables in the same format. What I want is to export the data from each table in to according rows in a google spreadsheet. I think the function should be automated to run ones every day. The first problem I am bumping in on is to open the different Doc files and extract the tables - any surgestions on how to do that?
The folder is access protected, but both the Docs and Sheet are placed within the same folder.
BR.
Torben

You will need to use the Drive API and export the documents as HTML. Then you will need to parse the HTML yourself to extract the table data. Finally use the Sheets API to insert that data into your spreadsheet.

Related

Is it possible to generate a google sheets document with graphs programmatically as a file?

I have an application that runs benchmarks and generates a CSV file with the report contents.
To interpret this report, I have created a template GSheets document with queries, drop down selections, graphs, etc.
Consumers must:
Run the benchmarking tool to generate the data CSV
Go to the template document in gsheets (outlined in the readme)
Copy the template into their own gdrive account
Insert the contents of the CSV into the unprotected data sheet of that document
This is a lot of manual handling and I would rather be able to, like a csv, programmatically produce a file that contains the filled out sheet where the consumer just needs to open the sheet with the Google Sheets account.
From what I can see, Google Sheets doesn't have a specific file format that it uses and the gsheet files are just empty magic links that the web app knows to respond to.
I can imagine that I can use the Google Sheets web API to publish a new file to the user's Google Drive but I don't want to mess around with Google OAuth authentication as I feel that's overkill.
Is it possible to write a file that Google Sheets can interpret directly?
Perhaps I can write an older MS Office .xls file and Google Sheets can interpret it via the import functionality?
My backup is writing the report to an html file with a web app that visualizes the data using some charting JS library - though it would be a shame because everything I need is already in Google Sheets.
Google sheets have an API: gspread.
If it's only a matter of switching data, you could create main spreadsheet with graphs etc. set up, and then using an API copy it and paste new data into it.

Generating a google doc template from google sheets?

I am trying to create a google doc that is fed by a google sheet. Each row created in the sheet needs to generate a google doc in which the information in the row is inserted into the document template in the correct places. Any experience generating docs from individual rows in sheets and could assist with this?
I am not sure if this is the solution you are looking for, but you may want to try this.
Make a table with google sheet like this one:
create a new document within google drive, and type the variables with double brackets like this: {{name}}
Go to the add-ons market in g suite market place, and search for document studio.
With it, you can generate files with custom data from a google sheet.
(it has a free trial with limit to 20 document a month per user if I remember correctly).
After you install it, access your google sheet again and open the add on. It will look like this:
Choose your google doc, and the add-on will automatically identify the variables you listed.
You can then select the file output type (PDF, WORD etc..). The add-on can send the file via email if needed as well.

How to read excel file from user and generating Google Sheet file

I need to allow user upload excel (xlsx) file and then generate a Google Sheets file using Google Scripts (the generated file uses the input file values, process them with certain formulas and provides another excel file as output based on all processing)
I am currently doing the task in a simple desktop application (using MS Excel etc.), but problem is I have admin rights and I want other people to do the same on their PCs but they dont have admin rights, so please help me with this, whats the best way I can implement it via Google Sheets. I need following to do:
Get an XLSX file from user
Read two columns using google sheet script.
Process the read values and create a new google sheet file with 6/7 columns
Plz help as I am not looking for a ready made code but a head start, as I have never worked with google scripts before.
First you need to study the basics of Apps Script in general, and of the SpreadsheetApp, DriveApp and Advanced Drive Service in specific.
The steps to write your code would be
retrieving the excel file on your Google Drive
retrieving its blob
creating a new file of the mimeType GOOGLE_SHEETS with the contents of your blob
Once you create a Google Spreadsheet - process it with the SpreadsheetApp methods to delete spare contents/ create a copy with only the desired contents.
Here you can find useful samples.
Note: It might make sense to retrieve the columns of interest before
converting them to Google Sheets, but this is not something you can do
with Apps Script or a Google API since they do not have methods to
edit Excel files.

How to produce a print-ready report based on Google Spreadsheet

I have a Google Spreadsheet which stores data filtered from another Spreadsheet which in turn is a sorage of Google Froms questionnaire.
I'd like to produce a print-ready report on a filtered data, retreiving certain data columns and laying it out with some titles, decorations etc.
How can I produce such a report using Google tools?
In this article it explains pretty well how to: Google Apps Script to create PDF.
It made a predefined template of a Google Docs, copyed it and replaced predefined places with the info in the current line of the Spreadsheet, then convert to PDF. If you don't have a predefined length of elements, you can append new info on the documents with the body element.
Take a look at the AutoCrat add-on or Yet Another Mail Merge add-on.

Google Docs Publish to the Web Data parsing

I have a trouble with parsing of data from google spreadsheet api. I have a spreadsheet with 3 pages and I need to get data from there and parse them to array where key is cell position and value is value of cell.
When I go to File->Publish to the web with option "All sheets" and target format is CSV seperated with comas I get a link which is targeting data with just values of cells and just from first page.
Here is any way how to get data from all sheets and with information where are placed in document (cell name (code))?
Thank you all!
You can use Google Spreadsheet API, for example using its Java Library
or you can use Google Apps Script and its spreadsheet methods
both of them are giving you the ability to have your data live in Google spreadsheet and at the same time access it from other clients or sites. You don't need to export it and lose the ability to have it updated across all your clients.

Resources