Google Sheets is great for working together online. But sometimes, you might need your data offline or in a different format, like Microsoft Excel (.xlsx). Manually doing this is simple. Yet, if you're dealing with changing data or need to download often, automating it saves time and cuts down on mistakes.
In this post, we'll explore automated ways to download a Google Sheet as an Excel file. We'll use Python and Google Apps Script for practical examples.
Method 1: Use Python to Export Google Sheets to Excel
Python is excellent for automating tasks. With Google APIs, you can easily export a Google Sheet as an Excel file.
🔧 Prerequisites
First, install the needed libraries:
pip install gspread oauth2client
Next, create a Google Cloud project. Enable the Google Sheets API and Google Drive API.
Then, download the credentials.json
for OAuth2.
✅ Python Script Example
import requests
from google.oauth2 import service_account
from google.auth.transport.requests import Request
# Replace with your sheet ID
SPREADSHEET_ID = 'your_spreadsheet_id_here'
# Load credentials
SCOPES = ['https://www.googleapis.com/auth/drive.readonly']
SERVICE_ACCOUNT_FILE = 'credentials.json'
creds = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
# Get access token
creds.refresh(Request())
access_token = creds.token
# Export as Excel (.xlsx)
url = f'https://www.googleapis.com/drive/v3/files/{SPREADSHEET_ID}/export?mimeType=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
headers = {
'Authorization': f'Bearer {access_token}'
}
response = requests.get(url, headers=headers)
# Save file locally
with open('sheet.xlsx', 'wb') as f:
f.write(response.content)
print("Google Sheet exported to Excel successfully!")
📌 Note:
Remember, your Google Sheet must be shared with the service account email.
Method 2: Use Google Apps Script to Create a Download Link
Google Apps Script is perfect for adding a button inside your spreadsheet. It generates and emails or links an Excel file.
✅ Apps Script Example
function exportSheetAsExcel() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const file = DriveApp.getFileById(spreadsheet.getId());
const url = "https://docs.google.com/feeds/download/spreadsheets/Export?key=" +
spreadsheet.getId() + "&exportFormat=xlsx";
const token = ScriptApp.getOAuthToken();
const response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Bearer ' + token
}
});
const blob = response.getBlob().setName(spreadsheet.getName() + ".xlsx");
const folder = DriveApp.getFolderById("your_folder_id_here"); // Optional: change target folder
const newFile = folder.createFile(blob);
Logger.log("File created: " + newFile.getUrl());
}
You can also set this script to run automatically. Use Triggers for daily or weekly exports.
Bonus: Zapier or Make (No-Code Option)
If you prefer no-code tools, Zapier or Make (formerly Integromat) can help. They automate the process:
- Trigger: New row or update in Google Sheet
- Action: Export and upload to Dropbox, OneDrive, or email as .xlsx
These tools use Google Sheets' export features. They're great for those who don't code.
Conclusion
If you're a developer or a power user, automating Google Sheets to Excel downloads can make your work easier. You can:
- Use Python for full control
- Use Apps Script for in-spreadsheet automation
- Use no-code tools for ease and quick setup
Find the method that works best for you. Say goodbye to manually downloading spreadsheets.