Kết Nối Google Sheets Với API Bên Ngoài: ImportJSON, ImportXML
Kết nối Google Sheets với API bên ngoài: ImportJSON, ImportXML, ImportHTML và UrlFetchApp — biến Sheets thành trung tâm dữ liệu thời gian thực.
Theo dõi tỷ giá, giá vàng, giá cổ phiếu, dữ liệu thời tiết, đơn hàng từ sàn TMĐT — tất cả tự động cập nhật vào Google Sheets mà không cần copy thủ công.
Mục lục:
1. Tại Sao Kết Nối Google Sheets Với API?
Dữ liệu kinh doanh ngày nay không chỉ nằm trong một file — nó nằm ở khắp nơi: trang web của đối thủ, API ngân hàng, hệ thống CRM, sàn thương mại điện tử, dịch vụ thời tiết... Kết nối API giúp bạn:
- Cập nhật tỷ giá USD/VNĐ, giá vàng tự động mỗi giờ
- Theo dõi đối thủ: Giá sản phẩm trên website họ
- Tổng hợp đơn hàng từ Shopee, Lazada, Tiki qua API
- Báo cáo thời tiết cho lập kế hoạch vận chuyển, nông nghiệp
- Theo dõi social media: Lượng follower, engagement
2. IMPORTHTML — Lấy Bảng Từ Website
IMPORTHTML import bảng (table) hoặc danh sách (list) trực tiếp từ trang web — không cần API, không cần code:
// Lấy bảng thứ 1 từ trang Wikipedia
=IMPORTHTML("https://vi.wikipedia.org/wiki/Danh_sách_tỉnh_thành_Việt_Nam", "table", 1)
// Lấy tỷ giá từ trang web ngân hàng (nếu có bảng HTML)
=IMPORTHTML("https://www.vietcombank.com.vn/KHCN/Cong-cu-tien-ich/Ty-gia", "table", 1)
// Lấy danh sách (list) từ trang web
=IMPORTHTML("https://example.com/products", "list", 2)
Giới hạn của IMPORTHTML
IMPORTHTML chỉ hoạt động với nội dung HTML tĩnh. Trang web dùng JavaScript để load dữ liệu (React, Vue...) sẽ không lấy được dữ liệu. Trong trường hợp đó, dùng API hoặc Apps Script.
3. IMPORTXML — Lấy Dữ Liệu Với XPath
IMPORTXML linh hoạt hơn IMPORTHTML — dùng XPath để chỉ định chính xác phần tử HTML/XML cần lấy:
// Lấy title của trang web
=IMPORTXML("https://example.com", "//title")
// Lấy tất cả link trên trang
=IMPORTXML("https://example.com", "//a/@href")
// Lấy giá sản phẩm (ví dụ trang có class="price")
=IMPORTXML("https://shop.example.com/product", "//*[@class='price']")
// Lấy dữ liệu RSS feed
=IMPORTXML("https://vnexpress.net/rss/kinh-doanh.rss", "//item/title")
Ứng dụng thực tế: Theo dõi giá sản phẩm của đối thủ cạnh tranh — mỗi ngày Sheets tự động lấy giá mới nhất, so sánh với giá của bạn và highlight nếu đối thủ hạ giá.
4. IMPORTDATA — Import CSV/TSV Từ URL
// Import file CSV từ URL công khai
=IMPORTDATA("https://data.example.com/sales-2026.csv")
// Import dữ liệu tỷ giá từ API trả về CSV
=IMPORTDATA("https://api.exchangerate-api.com/v4/latest/USD.csv")
// Import từ Google Sheets khác (public) dạng CSV
=IMPORTDATA("https://docs.google.com/spreadsheets/d/ID/export?format=csv&gid=0")
5. Import JSON Qua Apps Script
Google Sheets không có hàm IMPORTJSON tích hợp sẵn. Cần dùng Apps Script để gọi API JSON:
// Apps Script: Import dữ liệu từ API JSON
function importTyGia() {
const url = 'https://api.exchangerate-api.com/v4/latest/USD';
const response = UrlFetchApp.fetch(url);
const data = JSON.parse(response.getContentText());
const sheet = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName('TyGia');
// Ghi tỷ giá USD/VNĐ vào ô B1
sheet.getRange('B1').setValue(data.rates.VND);
sheet.getRange('B2').setValue(new Date());
Logger.log('Tỷ giá USD/VNĐ: ' + data.rates.VND);
}
6. UrlFetchApp — Gọi Bất Kỳ API Nào
// Gọi API có authentication (Bearer Token)
function layDonHangShopee() {
const apiUrl = 'https://partner.shopeemobile.com/api/v2/order/get_order_list';
const accessToken = PropertiesService.getScriptProperties()
.getProperty('SHOPEE_TOKEN');
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer ' + accessToken,
'Content-Type': 'application/json'
}
};
try {
const response = UrlFetchApp.fetch(apiUrl, options);
const data = JSON.parse(response.getContentText());
// Ghi dữ liệu vào sheet
const sheet = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName('DonHang');
data.orders.forEach((order, index) => {
sheet.getRange(index + 2, 1).setValues([[
order.order_id,
order.buyer_username,
order.total_amount,
order.order_status
]]);
});
} catch (e) {
Logger.log('Lỗi: ' + e.message);
}
}
// Gửi dữ liệu đến API (POST)
function guiDuLieuDenCRM() {
const payload = JSON.stringify({
customer_name: 'Nguyễn Văn A',
phone: '0901234567',
source: 'Google Sheets'
});
const options = {
method: 'POST',
contentType: 'application/json',
payload: payload
};
UrlFetchApp.fetch('https://crm.example.com/api/leads', options);
}
7. Use Cases Thực Tế Cho Doanh Nghiệp Việt Nam
| Nhu cầu | Giải pháp | Hàm/Tool |
|---|---|---|
| Theo dõi tỷ giá USD/EUR | API ExchangeRate tự động | UrlFetchApp + Trigger |
| Giá vàng SJC/DOJI | IMPORTXML từ trang web vàng | IMPORTXML |
| Đơn hàng Shopee/Lazada | API Partner của sàn TMĐT | UrlFetchApp |
| Theo dõi giá đối thủ | IMPORTHTML/XML từ website | IMPORTHTML + IMPORTXML |
| Tin tức ngành nghề | Import RSS Feed | IMPORTXML (RSS) |
| Dữ liệu từ form nội bộ | Google Forms → Sheets tự động | onFormSubmit Trigger |
Template Google Sheets Kết Nối Dữ Liệu Tự Động
Tại SheetStore.vn, một số template quản lý bán hàng đã tích hợp sẵn kết nối API để cập nhật tỷ giá, theo dõi tồn kho theo thời gian thực.
Xem Template Tích Hợp API →8. FAQ
IMPORTHTML có hoạt động với mọi trang web không?
Không — chỉ với trang HTML tĩnh có bảng. Trang dùng JavaScript render (React/Vue) sẽ không lấy được. Dùng API hoặc UrlFetchApp thay thế.
IMPORT functions cập nhật bao lâu một lần?
Tự động mỗi 1-6 giờ. Ép refresh bằng cách thêm tham số động vào URL hoặc dùng Apps Script trigger.
Có thể gọi API cần API key không?
Có — dùng Apps Script UrlFetchApp với headers. Lưu API key trong Script Properties, không hardcode trong code.
Bài Tiếp Theo: Google Sheets vs Excel 2026
Biết điểm mạnh của cả hai để chọn đúng công cụ cho từng công việc — tiết kiệm chi phí và tăng hiệu suất.
Đọc bài: Google Sheets vs Excel →Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Bạn thấy bài viết hữu ích?
Đăng ký nhận thông báo khi có bài viết mới.