This sample script performs OCR and imports resultant text to a cell using custom function on Spreadsheet.
Drive API has a function to do OCR. It was used for this sample.
I think that this method is one of various ideas.
Problem When OCR is performed and imported the result to a cell on spreadsheet, there are some limitations. DriveApp, UrlFetchApp, setFormula() cannot be used for custom functions.
Solution In order to avoid these limitations, I used Web Apps.
This sample is for changing file name and reopening the file with new name. The flow is as follows.
A file (sample.py) is opened. Rename the file from sample.py to newsample.py. The opened file is replace to the file with new name. os.rename(oldfilewithpath, newname) view = self.view.window().find_open_file(oldfilewithpath) if view: view.retarget(newname)
This sample retrieves all files in a folder with spreadsheet. When there are some folders in the folder with spreadsheet, this script can retrieve all files in all folders. This script has to be a container-bound script for spreadsheet.
Script : function getFileList(){ var folderlist = (function(folder, folderSt, results){ var ar = []; var folders = folder.getFolders(); while(folders.hasNext()) ar.push(folders.next()); folderSt += folder.getId() + "#_aabbccddee_#"; var array_folderSt = folderSt.
This sample script embeds a map to a cell using custom function on Spreadsheet.
I think that this method is one of various ideas.
Problem When the map is embeded to a cell on spreadsheet as an image, the function =IMAGE() is suitable for this situation. However, setFormula() for importing =IMAGE() and DriveApp.createFile() for creating images from maps also cannot be used for custom functions.
Solution In order to avoid these limitations, I used Web Apps.
This sample is for changing from “float64” to “int” for values did unmarshal using map[string]interface{}.
When it did unmarshal using map[string]interface{}, a number with “int” was changed to “float64”. And it shows an error as follows.
Error :
panic: interface conversion: interface {} is float64, not int Sample Script : It solves using following script.
package main import ( "encoding/json" "fmt" "reflect" ) func main() { data := `{"key": 10}` var i map[string]interface{} json.