Trong khi tôi đang làm điều đó, có vẻ như nhiệm vụ dễ dàng này mất nhiều thời gian hơn dự kiến chỉ vì thiếu tài liệu. Vì vậy, hãy cố gắng viết ra một hướng dẫn dễ thực hiện có thể giúp bạn thiết lập và đẩy dữ liệu vào bảng tính goggle trong vòng 20 phút
Kiểm tra điều kiện tiên quyết
Chúng tôi sẽ sử dụng API PHP và Google Sheets v4. Vì vậy, hãy kiểm tra xem mặt đất có phù hợp với nhiệm vụ không
- Bạn đã đăng nhập vào trình duyệt bằng Tài khoản Google. Tạo một cái nếu cần
- PHP5. 4 trở lên với giao diện dòng lệnh [CLI] và tiện ích mở rộng JSON được cài đặt
- Trình soạn nhạc đã được cài đặt
Thiết lập API Google Trang tính
Nếu bạn chưa chuẩn bị dự án và xác thực, hãy làm theo các bước để chuẩn bị –
- Đi qua trình hướng dẫn này để tạo hoặc chọn một dự án trong Google Developers Console và tự động bật API. Sau đó tiếp tục Chuyển đến thông tin đăng nhập
- Trên trang Thêm thông tin đăng nhập vào dự án của bạn, hãy đặt các giá trị sau –
Bạn đang sử dụng API nào?API Google Trang tínhBạn sẽ gọi API từ đâu?Dữ liệu không phải UI nào khácGhi chú. Chúng tôi đang chọn các lựa chọn trên vì ý định của chúng tôi là đẩy dữ liệu từ một số tập lệnh nền chạy trong máy chủ mà không có sự tương tác của người dùng. Lựa chọn của bạn có thể thay đổi nếu kế hoạch của bạn khác
- Tạo một tài khoản dịch vụ với đặc quyền của chủ sở hữu
- Ở bước cuối cùng, bạn sẽ nhận được 2 thứ, tệp JSON [Bí mật ứng dụng khách API] và ID khóa API cho tài khoản dịch vụ đã tạo. Tải xuống tệp json [nếu không được tải xuống tự động] và đổi tên thành sheet_api_secret. json. Sau đó di chuyển nó vào thư mục dự án
Bây giờ chúng tôi đã sẵn sàng truy cập và thao tác trên Google trang tính theo chương trình. Đi nào
Ping – kiểm tra xem Xác thực API Trang tính có hoạt động không
Tạo một Bảng tính trên Google cho bài kiểm tra của chúng tôi, đặt tên là “Nhật ký truy cập” hoặc một cái gì đó và lấy ID trang tính đó. Nếu bạn không chắc chắn về ID trang tính, hãy sao chép đoạn được đánh dấu từ url trang tính –
Sau đó, chạy lệnh sau trong thư mục dự án của bạn để cài đặt Google Client Library cho PHP
nhà soạn nhạc php. phar yêu cầu google/apiclient. ^2. 0
Cuối cùng, tạo một tệp app.php
và đặt đoạn mã sau vào đó. Giả sử rằng thư mục nhà cung cấp trình soạn nhạc và tệp sheets_api_secret.json
nằm trong cùng một thư mục của tệp này
setApplicationName[APPLICATION_NAME]; $client->setScopes[SCOPES]; $client->setAuthConfig[CLIENT_SECRET_PATH]; $client->setAccessToken[ACCESS_TOKEN]; $service = new Google_Service_Sheets[$client]; $sheetInfo = $service->spreadsheets->get[SHEET_ID]->getProperties[]; print[$sheetInfo['title']. PHP_EOL];
Trước khi chạy, hãy đảm bảo các điểm sau để nó hoạt động –
- Bạn đã thay thế giá trị
ACCESS_TOKEN
bằng Key ID của tài khoản dịch vụ. Tìm nó ở đây nếu không chắc nó là gì - Đã thay thế giá trị
SHEET_ID
bằng ID trang tính của bạn $options = array['valueInputOption' => 'RAW']; $values = [ ["Name", "Roll No.", "Contact"], ["Anis", "001", "+88017300112233"], ["Ashik", "002", "+88017300445566"] ]; $body = new Google_Service_Sheets_ValueRange[['values' => $values]]; $result = $service->spreadsheets_values->update[SHEET_ID, 'A1:C3', $body, $options]; print[$result->updatedRange. PHP_EOL];
0 được đặt chính xác vào tệp bí mật của khách hàng- Cuối cùng, Trang tính được chia sẻ với email của tài khoản dịch vụ được cấp quyền Chỉnh sửa
Bây giờ, hãy chạy tập lệnh này từ dòng lệnh
ứng dụng php. php
Nếu nó đang in tên của trang tính [ví dụ: Nhật ký truy cập], Xin chúc mừng. Xác thực của bạn đang hoạt động và bạn hiện đã sẵn sàng thao tác với bảng tính này
Thêm hàng dữ liệu vào Bảng tính Google
Bây giờ chúng ta sẽ viết một vài hàng vào bảng tính. Xóa tất cả các dòng sau khi nhận được
$options = array['valueInputOption' => 'RAW']; $values = [ ["Name", "Roll No.", "Contact"], ["Anis", "001", "+88017300112233"], ["Ashik", "002", "+88017300445566"] ]; $body = new Google_Service_Sheets_ValueRange[['values' => $values]]; $result = $service->spreadsheets_values->update[SHEET_ID, 'A1:C3', $body, $options]; print[$result->updatedRange. PHP_EOL];1 [dòng 23] và thêm các dòng sau
$options = array['valueInputOption' => 'RAW']; $values = [ ["Name", "Roll No.", "Contact"], ["Anis", "001", "+88017300112233"], ["Ashik", "002", "+88017300445566"] ]; $body = new Google_Service_Sheets_ValueRange[['values' => $values]]; $result = $service->spreadsheets_values->update[SHEET_ID, 'A1:C3', $body, $options]; print[$result->updatedRange. PHP_EOL];
Ở đây, trong mảng
$options = array['valueInputOption' => 'RAW']; $values = [ ["Name", "Roll No.", "Contact"], ["Anis", "001", "+88017300112233"], ["Ashik", "002", "+88017300445566"] ]; $body = new Google_Service_Sheets_ValueRange[['values' => $values]]; $result = $service->spreadsheets_values->update[SHEET_ID, 'A1:C3', $body, $options]; print[$result->updatedRange. PHP_EOL];2, chúng tôi đang đặt các giá trị phải được coi là văn bản thô, không có công thức hoặc tham chiếu. Trong
$options = array['valueInputOption' => 'RAW']; $values = [ ["Name", "Roll No.", "Contact"], ["Anis", "001", "+88017300112233"], ["Ashik", "002", "+88017300445566"] ]; $body = new Google_Service_Sheets_ValueRange[['values' => $values]]; $result = $service->spreadsheets_values->update[SHEET_ID, 'A1:C3', $body, $options]; print[$result->updatedRange. PHP_EOL];0, mỗi mảng cấp 1 là một hàng và mỗi giá trị ở cấp 2 là một giá trị cột. Và điều quan trọng cuối cùng là phạm vi ô cần cập nhật, tham số thứ 2 của phương thức
$options = array['valueInputOption' => 'RAW']; $values = [ ["Name", "Roll No.", "Contact"], ["Anis", "001", "+88017300112233"], ["Ashik", "002", "+88017300445566"] ]; $body = new Google_Service_Sheets_ValueRange[['values' => $values]]; $result = $service->spreadsheets_values->update[SHEET_ID, 'A1:C3', $body, $options]; print[$result->updatedRange. PHP_EOL];1. Nếu phạm vi không bao gồm không gian cần thiết cho các giá trị đầu vào, bạn sẽ gặp lỗi
Ok, chúng ta hãy chạy nó một lần nữa. Nếu nó in một cái gì đó như “Sheet1. A1. C3” có lẽ chúng ta đã cập nhật sheet thành công. Đi kiểm tra tờ để có được cảm giác
Nối dữ liệu sau hàng được điền cuối cùng của Bảng tính Google
Bây giờ, thách thức lớn nhất mà bạn có thể thấy là thiết lập phạm vi. Làm thế nào bạn sẽ theo dõi các hàng đầy?
Được rồi, giải pháp càng dễ thì vấn đề càng lớn. Đặt hàng tiêu đề của trang tính theo cách thủ công và luôn chỉ sử dụng phạm vi của các hàng tiêu đề. Và sử dụng chức năng
$options = array['valueInputOption' => 'RAW']; $values = [ ["Name", "Roll No.", "Contact"], ["Anis", "001", "+88017300112233"], ["Ashik", "002", "+88017300445566"] ]; $body = new Google_Service_Sheets_ValueRange[['values' => $values]]; $result = $service->spreadsheets_values->update[SHEET_ID, 'A1:C3', $body, $options]; print[$result->updatedRange. PHP_EOL];2 thay vì
$options = array['valueInputOption' => 'RAW']; $values = [ ["Name", "Roll No.", "Contact"], ["Anis", "001", "+88017300112233"], ["Ashik", "002", "+88017300445566"] ]; $body = new Google_Service_Sheets_ValueRange[['values' => $values]]; $result = $service->spreadsheets_values->update[SHEET_ID, 'A1:C3', $body, $options]; print[$result->updatedRange. PHP_EOL];3. Điều này sẽ tự động tìm hàng trống tiếp theo và chèn các cột vào đó