Cách lấy dữ liệu từ web vào google sheet

Cập nhật mới nhất ngày 01 tháng 07 năm 2022: Trong quá trình làm việc, đôi khi chúng ta cần lấy dữ liệu từ Website về Excel để thực hiện việc phân tích số liệu. Thay vì Coppy - Paste bình thường, điều này có thể được thực hiện tự động bởi Excel. Ngoài ra việc thực hiện lấy dữ liệu tự động từ Website cũng có thể thực hiện được đối với Google Sheets nhé. Xem bài viết hướng dẫn này để thực hiện cách lấy dữ liệu từ Web về Excel - Google Sheets nhé!

Nội dung chính Show

NỘI DUNG

  • Cách lấy dữ liệu từ Website về Excel
  • Cách cập nhật - làm mới dữ liệu trong Excel từ Website
  • Lấy dữ liệu từ trang web vào Google Sheets

Trong quá trình làm việc, đôi khi chúng ta cần lấy dữ liệu từ Website về Excel để thực hiện việc phân tích số liệu. Thay vì Coppy - Paste bình thường, điều này có thể được thực hiện tự động bởi Excel.
Ngoài ra việc thực hiện lấy dữ liệu tự động từ Website cũng có thể thực hiện được đối với Google Sheets nhé. Xem bài viết hướng dẫn này để thực hiện cách lấy dữ liệu từ Web về Excel - Google Sheets nhé!

Cách lấy dữ liệu từ Website về Excel

Ví dụ chúng ta cần lấy dữ liệu về tình hình Dịch Bệnh COVID-19 từ trang web tin tức của Bộ Y Tế.

Cách lấy dữ liệu từ web vào google sheet

Sau khi chọn công cụ ở bước 1 lúc này cửa sổ công cụ From Web hiện trên màn hình, ta chỉ cần nhập hoặc Coppy liên kết Website dán vào chỗ URL rồi nhấn OK thì Excel sẽ điều hướng đến dữ liệu trang Web.

Bước 3: Chọn bảng cần lấy dữ liệu > Nhấn Load

Cách lấy dữ liệu từ web vào google sheet

Nguyen Hong Hai @mr.nguyenhonghai

Theo dõi

830 23 10

Đã đăng vào thg 11 20, 2020 12:34 CH 4 phút đọc

4.4K

1

7

Hướng dẫn tạo API lấy dữ liệu từ google sheet

  • Báo cáo
  • Thêm vào series của tôi

Bài đăng này đã không được cập nhật trong 2 năm

Hôm trước mình có viết 1 bài Hướng dẫn tạo API ghi dữ liệu lên google sheet, thì nay mình tiếp tục chia sẻ cho mọi người cách để lấy dữ liệu từ google sheet thông qua api. Bài toán hôm nay của mình là muốn lấy thông tin thành viên của dự án trên google sheet để xử lý 1 số tác vụ bằng code, thông tin nhạy cảm nên mình sẽ dùng dữ liệu demo thôi nhé mọi người.

Thiết lập google sheet

Đầu tiên chúng ta cần tạo 1 trang google sheets, bạn nào có rồi có thể bỏ qua bước này, truy cập đường dẫn: https://docs.google.com/spreadsheets/ sẽ mở trang google sheet giao diện như bên dưới sau đó chọn "Blank"

Sau khi tạo trang google sheets xong, chúng ta thêm dữ liệu vào sheet như ảnh dưới (vị trí để giống mình là được còn màu thì mình thêm vào để highlight thôi chứ không cần)

Thiết lập google script

Thêm dữ liệu vào sheet xong chúng ta sẽ đi viết script để lấy dữ liệu ra, mình sẽ lấy toàn bộ nội dung bôi đỏ ở ảnh trên, trên thanh công cụ chọn Tools -> Script editor

Trình duyệt sẽ mở 1 tab google script

Thay đoạn code trong phần Code.gs thành nội dung sau

function doGet(e) { return handleResponse(e); } var SHEET_NAME = "Sheet1"; var SCRIPT_PROP = PropertiesService.getScriptProperties(); function handleResponse(e) { var lock = LockService.getPublicLock(); lock.waitLock(30000); try { var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("key")); var sheet = doc.getSheetByName(SHEET_NAME); var row = 2; var column = 3; var numRows = 4; var numColumns = 1; var values = sheet.getRange(row, column, numRows, numColumns).getValues(); var names = []; for (var row in values) { if (values[row][0]) { names.push(values[row][0]); } } var content = { "names": names, }; return ContentService .createTextOutput(JSON.stringify({"result": "success", "content": content})) .setMimeType(ContentService.MimeType.JSON); } catch (e) { return ContentService .createTextOutput(JSON.stringify({"result": "error", "error": e})) .setMimeType(ContentService.MimeType.JSON); } finally { lock.releaseLock(); } } function setup() { var doc = SpreadsheetApp.getActiveSpreadsheet(); SCRIPT_PROP.setProperty("key", doc.getId()); }

SHEET_NAME chính là tên của sheet bên trang google sheet, mặc định khi tạo mới sẽ là "Sheet1"

Để lấy giá trị mình dùng hàm , hàm này nhận vào 4 tham số

  • row: hàng bắt đầu
  • column: cột bắt đầu
  • numRows: số hàng muốn lấy
  • numColumns: số cột muốn lấy

Bài toán của mình là lấy từ cột C2 đến C5 (phần bôi màu đỏ trên sheet) thì sẽ truyền vào hàm lần lượt là

  • row = 2 (lấy từ giá trị A nên hàng bắt đầu sẽ bằng 2)
  • column = 3 (lấy giá trị ở cột C tương ứng sẽ là 3)
  • numRows = 4 (mình muốn lấy hàng 2, 3, 4, 5 nên số hàng sẽ bằng 4)
  • numColumns = 1 (mình chỉ muốn lấy nguyên cột C nên số cột bằng 1)

Lấy dữ liệu bằng hàm thì mảng trả về sẽ có dạng như dưới, mọi người dùng cú pháp ngôn ngữ javascript để xử lý mảng theo ý mình mong muốn nhé

values = [ ['A'], ['B'], ['C'], ['D'], ];

Ở trên thì mình xử lý như sau

var row = 2; var column = 3; var numRows = 4; var numColumns = 1; var values = sheet.getRange(row, column, numRows, numColumns).getValues(); var names = []; for (var row in values) { if (values[row][0]) { names.push(values[row][0]); } }

Ngoài ra có rất nhiều hàm hỗ trợ lấy dữ liệu từ sheet, mọi người có thể đọc thêm ở đây: Google Apps Script

Lưu tập lệnh lại, chọn File -> Save

Chọn OK

Bước tiếp theo cần cấp quyền cho google script sử dụng tài khoản, chọn Run -> Run function -> setup

Chọn Review Permissions

Trình duyệt sẽ mở 1 cửa sổ mới, chọn vào tài khoản mình sẽ cấp quyền

Chọn Allow

Sau khi đã cấp quyền cho tài khoản bước tiếp theo chúng ta sẽ thực hiện lấy URL, chọn Publish -> Deploy as web app

Phần Who has access to the app thay đổi từ "Only myself" thành "Anyone, even anonymous" sau đó chọn Deploy

Deploy xong sẽ nhận được URL

Sao chép URL và dán vào trình duyệt sẽ nhận được kết quả như dưới

Sau khi đã có URL từ google sheet mọi người chỉ cần xây dựng chức năng ở ứng dụng của mình và đó gọi URL bằng phường thức GET là nhận dữ liệu ok nhé.