I have to syncronize a .csv file with a google sheet - google-sheets

I have to synchronize a .csv file with a google sheet. The csv file is stored into a NAS area with a specific path.
The final output is to have a google sheet file which is a copy of the csv file periodically updated. The purpose is to automate the process of updating a dashboard that has the google sheet as the database but the original source file is periodically issued in this NAS area.
Can you help me?

Related

Can you automate Google Sheets to overwrite .txt file on change?

I'm running a java applet in terminal 24/7. The applet references a .txt file that requires periodic editing. That text file is a simple list of urls. The urls originate from a Google Sheet and it is sort of a clumsy process to copy a column from the Sheet, paste over the info in the .txt file, quit and restart the applet manually... Is it possible to write a script that exports data from a Google Sheet and overwrites & saves my text file? If so, how would I go about doing so?
Even better if the script could quit & restart the applet upon the .txt file being edited.
Thanks!

Download embeded google sheets

as I'm not a web developer by any means, this is me just asking a question for that I have not found a solution for.
I have a google sheet with multiple pages/sheets within it. the file is embeded in an iframe inside a webpage and I pulled the url and can open it directly using the url. the following link is just an example as I can't share the actual link since I am not allowed to:
https://docs.google.com/spreadsheets/d/e/{key}/pubhtml?widget=true&headers=false
I have tried this:
https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key={key}
and is not working I get an error:
Sorry, unable to open the file at present.
Please check the address and try again.
the file is not meant for anyone to download nor share. Furthremore, since it is continuosely manually updated by author and I need to keep track of updates, taking screenshots is not efficient since the file is too big.
is there any way I can download the actual sheet to my device (so I can compare file updates over the long run)
Thank you.
I believe your goal as follows.
You want to download a Google Spreadsheet.
You are the owner of Google Spreadsheet.
The Spreadsheet is published as the Web publish. So the URL of Spreadsheet is https://docs.google.com/spreadsheets/d/e/2PACX-1vTl9bcwMSjoxYj406evzJefFodkVEUlV2KIq34Y5V8BFWJygAFrPSA7L5d89TASDUjkPG4b2SfN2rpe/pubhtml?widget=true&headers=false.
Issue and workaround:
Unfortunately, the Google Spreadsheet cannot be directly downloaded as the Google Spreadsheet. It seems that this is the current specification. In this case, it is required to export the Google Spreadsheet as other mimeType. For example, it's XLSX format, PDF format and CSV format. But the URL of https://docs.google.com/spreadsheets/d/e/2PACX-1vTl9bcwMSjoxYj406evzJefFodkVEUlV2KIq34Y5V8BFWJygAFrPSA7L5d89TASDUjkPG4b2SfN2rpe/pubhtml?widget=true&headers=false cannot directly export. So, in this answer, as a workaround, I would like to propose to use the URL for exporting Google Spreadsheet as other mimeType.
When your URL is used, the URL for exporting is as follows.
Modified url:
https://docs.google.com/spreadsheets/d/e/2PACX-1vTl9bcwMSjoxYj406evzJefFodkVEUlV2KIq34Y5V8BFWJygAFrPSA7L5d89TASDUjkPG4b2SfN2rpe/pub?output=xlsx
In this case, when you access to above URL using browser, your Spreadsheet can be exported as a XLSX file.
When output=xlsx is modified to output=pdf and output=csv, you can export as a PDF file and a CSV file, respectively.
When you want to export the specific sheetm please use the sheet ID like gid=0. The URL is as follows.
https://docs.google.com/spreadsheets/d/e/2PACX-1vTl9bcwMSjoxYj406evzJefFodkVEUlV2KIq34Y5V8BFWJygAFrPSA7L5d89TASDUjkPG4b2SfN2rpe/pub?output=xlsx&gid=0
Note:
When you want to make users downloading the Spreadsheet, you can add the tag a as follows.
Download

How to allow users to Upload local file, Edit in sheets, and Write back to local file

I'm investigating if it's possible for a user to: Pick a file on disk, automatically upload it to Google Sheets, do some edits, and write the changes back to the file.
I basically want to use Google Sheets as the Editor of the local file.
Has anyone tried something like this, or can confirm if it's a feasible idea?
My rough idea:
Install a script or program, that a user (on our team) can execute with the appropriate file they pick.
Typically they right-click a file and pick "Open with MyGoogleSheetsCreate".
The ToSheets-script does the following:
Generates a temporary Spreadsheet on the user's Google Drive (or possibly a Team Drive/Folder for temp files)
Reads the custom data in the local file and enters it into the Spreadsheet.
Opens a Browser window with the generated spreadsheet.
The user makes some changes to the spreadsheet.
The user exports the changes back to the file.
User initiates this how? Some ideas:
Perferably: I build a button or menu option to "Export back to Local Disk". This would only be viable if we could explicitly say where to save this custom file, i.e. where it came from.
Optionally: They right-click the original file and pick "Open with MyGoogleSheetsRetrieve". The importer would need to know the address of the Google Sheet the local file was last exported to.
FromSheets-Script converts the Spreadsheet into our custom data format and overwrites the old file.
Bonus: The temporary Google Sheet would be automatically moved to the Bin within a couple of days (without user interaction).
I think I've got a good idea of how to convert our custom format to Sheets and vice versa. The steps I'm most unsure of are: 3.1 and 5.1

Append local csv files to a Google spreadsheet in a Team Drive

I could follow Wesley Chun to upload local csv file to a Team Drive alright as described in Managing Team Drives with Python and the Google Drive API, but it's not easy to append a csv file to a Google Sheet spreadsheet when both the csv file and the Google Sheet spreadsheet are in the same Team Drive. DriveApp.searchFiles(), getBlob().getDataAsString() and Utilities.parseCsv() work perfectly and get the job done in My Drive, but not in a Team Drive.
The challenge is to upload a local csv file to a Team Drive regularly; append the uploaded csv file to a Google Sheet spreadsheet in the same Team Drive. I got stuck at the second part. Do you have any clue?
Are you able to get a shared file link for that uploaded CSV file in the team drive?
Right click on the file in the drive and click get shareable link. If you are able to do that it should look like this.
"https://drive.google.com/file/d/1Vd09if9o5wVL8lEGXE2QDaYhGMxzEFhj/view?usp=sharing"
Take your sheet_id code and paste it into the format below.
"https://drive.google.com/uc?export=download&id=1Vd09if9o5wVL8lEGXE2QDaYhGMxzEFhj"
You can then use =importdata("https://drive.google.com/uc?export=download&id=1Vd09if9o5wVL8lEGXE2QDaYhGMxzEFhj") in your sheet to pull in the data from the uploaded csv file.
Hopefully this helps.

Using IMPORTRANGE to import from Excel file in Google Drive

To import an entire sheet of data from another spreadsheet using IMPORTRANGE I'd do something like this:
=importrange("google-drive-id-for-spreadsheet","A:AR")
This works fine for a Google Sheets spreadsheet source, but if the source file is an Excel spreadsheet, I get a #Ref! error in the cell and the hover comment is:
Error Spreadsheet cannot be found.
I'm presuming this is because IMPORTRANGE doesn't work with Excel files, so how can I achieve the same thing?
I don't mind working with scripts but would prefer a formula solution if possible.
Edit: This happens whether I use the full URL or just the spreadsheet key and if I use the sheet name with the range or not. I've tried several files and it always works with the Google Sheets files and never works with Excel files.
Something occurred to me about the ownership and location of these files. Somebody else is the owner of the spreadsheet that I want the IMPORTRANGE formula in. I have full edit permissions. The folder that the spreadsheet resides in is owned by the same guy, it has been shared with me and I have added it to my Drive. In a subfolder of this folder is where the source files are. I am the owner of the subfolder and the source files within, both Excel and Google Sheets files.
Could this setup have anything to do with the results I'm getting?
Edit: I've had the ownership of the folders (all the way up the hierarchy) and relevant files transferred to me and it's still doing the same thing.
This is clearly only a work around and not an answer, but I had to do something so that I could move on. The only way I could get what I wanted is to code a convert to .gsheet format first and point imortrange to that new sheet. Might help someone else get their project pointing in a working direction until this can be answered.
There are there way to fix this problem:
Convert the Excel spreadsheet to a Google spreadsheet. You can then use the importrange() function to import the data from the converted file.
Export the Excel spreadsheet to a CSV file first, then you can use a different function called the importdata() function to import that data into a Google spreadsheet.
Using Add-on: "Sheetgo"
You should watch this video:
How to automatically import Excel Data to Google Sheets?

Resources