uploaded and newly created Google Spreadsheets not indexed - google-sheets

Google drive does not always index files that are in google document format - specifically spreadsheets. Searching for a field in the spreadsheet works perfectly when excel spreadsheets are uploaded and not converted, but are not searchable when uploaded and converted to a google spreadsheet.
My testing within the Google Drive web application has shown that:
- searching for "UNIQUE1234" in the exact same document uploaded twice fails when the document is "converted" to google document format but succeeds with left unconverted (as an excel, .xlsx file).
- searching for the same string in a newly created spreadsheet (through the drive interface) also does not return the new document.
- these google document spreadsheets are at some point indexed as I can search some of my older documents.
The real problem is that I'm writing an application that uses the Drive SDK to search for a specific string within drive spreadsheets - and it doesn't work when the files aren't indexed. The only workaround I've seen is to have users not convert uploaded documents - but this isn't great as it is nice for them to occasionally alter uploaded fields.
My questions are: What triggers google drive to index Google documents? Is there a way to trigger indexing on a particular document? Is this a bug?
Any help is greatly appreciated as I'd like to autodetect spreadsheets with particular values in user's drive accounts.

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.

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.

Extract data from Google docs to 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.

parsing gmail message automatically and inserting results into google spreadsheet

A colleague of mine is a small builder here in London. He works all over town. He uses many different suppliers.
Most suppliers send him their sales invoice via email when he buys something.
My friend could set up a gmail address to be used only by suppliers. But could emails sent to it be "automagically" processed and their contents inserted into a google spreadsheet ?
What is the relative practicality of what I've outlined ?
Tom
So, your query finally boils down to two questions:
Save PDF attachments from Inbox to Google Drive
Parse PDFs and store the data into google spreadsheet
Save PDF attachments
This can be easily achieved by processing the attachments from the emails and storing them google drive. This link will help you achieve the same. Kindly go through the script provided in the sheet for better understanding.
Parse PDF attachments
After storing the PDFs in google drive, you could easily retrieve the content via Document Class using method getBlob or getBody as per your requirement and store in google spreadsheets.
Yesterday I've used mailpareser to parse an order email and create a google spreadsheet raw for each line item in the order. So this is now automatic.
I've found this question with google so it's still relevent.

get spreadsheet URL

I have a problem in my reporting, i create every day a google doc tracker where all the stack holders in my department update their work progress in it, so i have plenty of spreadsheets to monitor which is a hassle, here is what im trying to do, I'm trying to create a big google doc tracker where i can have an access over date applied in the normal spreadsheets, all what i need is the spreadsheet's URLs that exist in my google drive to be retrieved in this big tracker, with this i'll be able to drive all the needed data from the normal trackers.
PS: I'm not good with google scripts.
You can use the Drive Service to get a list of files with MIME type "application/vnd.google-apps.spreadsheet" using getFilesByType. This returns a FileIterator, which you can use to individually get each Spreadsheet file. From there, just use getUrl() to find the URL's. The FileIterator link has examples of how to loop through all the matching files.

Resources