The sample dataset contains information on Product, Size, and Price.
Method 1 – Download Google Sheets as Excel File
- Open the Google sheet to be imported.
- Select File > Download.
- Choose Microsoft Excel (.xlsx) from the options.
- The Save As window will pop up.
- Change the name of the file if needed and select Save.
- The google sheet is saved as an Excel file.
Read More: How to Download Google Sheets to Excel
Method 2 – Import Live Data to Excel from Google Sheets Link
With this method, data updated in Google Sheets will automatically appear in the Excel worksheet.
- Open the Google sheet.
- Select Share from the upper right corner of the Google sheet.
- A Share window will appear.
- Select the Copy link and press Done.
- Open an Excel worksheet and select the Data tab from the ribbon.
- From the Data tab select Get Data > From Other Sources > From Web.
- A From Web window will show up.
- Paste the copied link in the URL field.
- Change the attributes edit?usp=sharing to export?format=xlsx and press OK.
- A Navigator window will appear.
- Select the sheet to import then press Load.
- If we change data in Google Sheets, select Refresh All from the Data tab to update the data.
Read More: How Can I Link Google Sheets to Excel in Real Time?
Method 3 – Apply VBA to Import Data from Google Sheets to Excel
- Open the VBA window by pressing the keyboard shortcut Alt + F11.
- Select the active sheet from VBA Projects and right-click.
- Select Module from the options.
- A module window will appear, write the following code there.
Sub Import_Google_Sheet()
Dim iKyStrn As String
Dim iGidStrn As String
iKyStrn = "1YJXOrL5KxrSdcCMHUxktJ5kz3BbJU7w5afKY9kJ_R18"
iGidStrn = "1925099421"
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;https://spreadsheets.google.com/tq?tqx=out:html&tq=&key=" & _
iKyStrn & "&gid=" & iGidStrn, Destination:=Range("$A$1"))
.Name = "q?s=goog_2"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "1,2"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
Note: In the code,
iKyStrng = "1YJXOrL5KxrSdcCMHUxktJ5kz3BbJU7w5afKY9kJ_R18"
replace the iKyStrng value with the address of the desired google sheet
iGidStrng = "1925099421"
replace iGidStrng value with the address of a specific tab of google Sheets.
- Press the Run key from the VBA window.
- You will be able to import data from google sheets to Excel worksheets.
How to Import Excel File to Google Sheets
- Open the google sheet.
- Go to File and select Import from the options.
- An Import file window will appear.
- Select Upload.
- Click on Select a file from your device, browse the Excel file to import, and select Open.
- In the Import file window select Replace spreadsheet.
- Select Import data.
Read More: How to Import Data from Google Sheets to Excel Using VBA
Download Practice Workbook
You can download the practice workbook from here.
Import Google Sheets to Excel: Knowledge Hub
- Import Data from Google Sheets to Excel
- Convert Google Sheets to Excel with Formulas
- [Fixed!]: Google Sheet Downloaded as Excel Is Not Working
- Edit Google Sheets in Excel
- Transform Google Sheets to Excel Automatically
- Unlocking Potential of Google Sheets QUERY Function in Excel
<< Go Back to Importing Data in Excel | Learn Excel
Get FREE Advanced Excel Exercises with Solutions!
Hey nice write up!
Do you have advice on how to import google sheets into excel if the google sheet requires authentification?
Best,
Jan
Hello Jan,
Thanks for sharing your problem with us. I understand that you want to import data from an authenticated Google Spreadsheet to Excel.
This is a complex method and requires several steps. Since Google Sheets are authenticated using Google Sheets APIs, you have to collect some information like client_id, client_secret, target spreadsheet ID, target spreadsheet name, and the range to be imported.
Here is a step-by-step process:
Step 1: Go to Google Cloud Console and select the target project (i.e. the project used for authenticating the required Google Spreadsheet)
Step 2: Make sure the Google Sheets API is enabled. Navigate the following directory.
APIs & Services >> Library
Step 3: Create an OAuth 2.0 Client ID using the following sub-steps.
Step 3.1: Go to the directory APIs & Services >> Credentials.
Step 3.2: Click the Create credentials button and select OAuth client ID.
Step 3.3: Set the Application type to Desktop App.
Step 3.4: Enter a name for the Application and click the Create button.
This will create a JSON file containing your client ID and client secret. Download the file and open it using VB.net or any other suitable application.
Step 4: Go to the target Excel workbook and open Visual Basic Editor using the keyboard shortcut Alt + F11. Insert a Module and enable the following 3 libraries from Tools >> References directory.
1) Microsoft Scripting Runtime
2) Microsoft XML, v6.0
3) Microsoft VBScript Regular Expressions 5.5
Step 5: Insert the following VBA code and make necessary adjustments (change the spreadsheet ID, client_id, client_secret, sheet name, required range, etc.)
Excel VBA Code
Step 6: Run the code and the required data from the authenticated Google Sheets will appear in your Excel Active Sheet.
Note that, this code will only work if you have the Google Sheets API developers have authorized your email to the target Google Spreadsheet.
Hopefully, we were able to help you. Let us know your feedback.
Regards,
Seemanto Saha
ExcelDemy
Hi SEEMANTO SAHA
I already have like, from excel import a sheet of sheets, but, now I need to process data in excel and then update only a certain column or a certain line in sheets, can you help me?, I’m blocked with permissions, do the same steps work?
Hello Pablo
Thanks for visiting our blog and sharing your queries! You can modify the existing code slightly to update specific columns or rows in Google Sheets from Excel. Follow the previously mentioned steps, ensure you have the necessary permissions for the Google Sheet and adjust these with the VBA code.
Excel VBA Code:
Things to keep in mind: To adjust the VBA code, replace YOUR_SPREADSHEET_ID with your actual Google Sheet ID, and replace your YOUR_CLIENT_ID and YOUR_CLIENT_SECRET with the values from your OAuth 2.0 credential JSON file. Adjust the rangeName to specify the exact range (column/row) you want to update in the Google Sheet. Next, modify dataToUpdate to include the data you want to update. After running the VBA code, it will open a browser for you to authenticate with Google; enter the authorization code.
Hopefully, the code will fulfil your goal. Good luck.
Regards
Lutfor Rahman Shimanto
Excel & VBA Developer
ExcelDemy