Hướng dẫn gửi dữ liệu lên Google Sheets từ chương trình C#

This entry is part 4 of 4 in the series Khóa học C#

Việc kết nối ứng dụng C# với Google Sheets giúp bạn quản lý dữ liệu linh hoạt mà không cần cài đặt Excel trên máy trạm. Trong bài viết này, chúng ta sẽ thực hiện từ A-Z: từ việc tạo dự án ExampleProject trên Google Cloud đến việc viết Class Helper để đẩy hàng nghìn ô dữ liệu lên cloud chỉ với 1 request duy nhất.

Mục lục

  1. Thiết lập dự án trên Google Cloud
  2. Lấy ID bảng tính và cấp quyền
  3. 3. Tạo Project C#
  4. Lưu ý
  5. Câu hỏi thường gặp

1. Thiết lập dự án ExampleProject trên Google Cloud

Để ứng dụng C# có thể “nói chuyện” với Google Sheets, bạn cần một bộ thông tin định danh (Credentials). Do đó, trước khi viết code, bạn cần đăng ký dịch vụ với Google để nhận file xác thực.

1.1. Tạo dự án mới

  • Truy cập Google Cloud Console.
  • Click vào danh sách dự án ở góc trên bên trái và chọn New Project.
  • Đặt tên dự án là ExampleProject và nhấn Create.

1.2. Bật Google Sheets API

  • Tại ô tìm kiếm, gõ “Google Sheets API” và chọn kết quả tương ứng.
  • Nhấn nút Enable để kích hoạt API cho dự án ExampleProject.

1.3. Tạo Service Account và lấy file JSON

  • Vào menu APIs & Services > Credentials.
  • Chọn + Create Credentials > Service Account.
  • Sau khi tạo xong, click vào email của Service Account đó.
  • Chuyển sang tab Keys, chọn Add Key > Create new key.
  • Chọn định dạng JSON và nhấn Create. Một file sẽ tự động tải về máy bạn. Hãy đổi tên nó thành credentials.json.

2. Lấy ID bảng tính và cấp quyền

Mỗi file Google Sheets có một ID duy nhất. Bạn hãy mở file Sheets của mình lên và quan sát URL:

https://docs.google.com/spreadsheets/d/1vqnkf65XGiFzr3UHETkKA0qjnwSYHPzUI4vjUJJKW0E/edit

Chuỗi in đậm chính là Spreadsheet ID.

Cực kỳ quan trọng: Mở file credentials.json bạn vừa tải về, copy giá trị của client_email. Sau đó vào Google Sheets, nhấn nút Share và thêm email này với quyền Editor. Nếu thiếu bước này, bạn sẽ gặp lỗi 403 Forbidden.

3. Tạo Project C# và Cấu hình Helper

Tại bước này, chúng ta sẽ chuẩn bị môi trường lập trình trong Visual Studio.

3.1. Tạo Project .NET Framework 4.7.2

  1. Mở Visual Studio, chọn Create a new project.
  2. Tìm kiếm và chọn Console App (.NET Framework) hoặc Windows Forms App (.NET Framework). Nhấn Next.
  3. Đặt tên cho dự án (ví dụ: GoogleSheetsApp).
  4. Tại mục Framework, chọn .NET Framework 4.7.2.
  5. Nhấn Create để khởi tạo dự án.

3.2. Cài đặt thư viện NuGet

Để giao tiếp với Google API, bạn cần cài đặt thư viện chính thức thông qua NuGet:

  • Vào menu Tools > NuGet Package Manager > Package Manager Console.
  • Gõ lệnh sau và nhấn Enter:

3.3. Viết Class Helper xử lý dữ liệu

Chuột phải vào Project, chọn Add > Class, đặt tên là TGMTgooglesheet.cs và dán đoạn mã sau để xử lý gửi dữ liệu:

3.4. Ví dụ sử dụng thực tế

Ví dụ này hướng dẫn cách gửi dữ liệu, tìm kiếm một hàng và cập nhật hàng loạt nhiều vị trí khác nhau:

4. Lưu ý

Một vấn đề gây đau đầu là C# mặc định hiểu dấu . là ngăn cách thập phân, nhưng Google Sheets tại Việt Nam thường dùng dấu ,.

  • Cách 1: Thay đổi Locale trong Google Sheets (File > Settings > Locale) sang United States để đồng bộ với chuẩn lập trình.
  • Cách 2: Trong code C#, sử dụng searchValue.Replace(",", ".") trước khi parse để đảm bảo tìm kiếm chính xác dù người dùng nhập theo chuẩn nào.

5. Câu hỏi thường gặp (FAQ)

Câu hỏi Giải đáp
Có mất phí không? Hoàn toàn miễn phí.
Giới hạn đọc/ghi là bao nhiêu? 300 yêu cầu đọc mỗi phút300 yêu cầu ghi mỗi phút cho mỗi dự án.
Mỗi người dùng sẽ giới hạn 60 yêu cầu đọc/ghi mỗi phút cho mỗi dự án.
Nếu ứng dụng của bạn vượt quá các giới hạn này, API sẽ trả về mã trạng thái HTTP 429: Too many requests
Lỗi “The caller does not have permission”? Bạn chưa Share bảng tính cho email của Service Account.
Lỗi “Unable to parse range”? Tên Sheet của bạn có thể chứa khoảng trắng hoặc sai chính tả (Ví dụ: ‘Sheet 1’ thay vì ‘Sheet1’).

Hy vọng hướng dẫn này giúp bạn tích hợp Google Sheets vào ứng dụng C# .NET Framework 4.7.2 một cách dễ dàng. Nếu có thắc mắc, hãy để lại bình luận hoặc liên hệ qua support@viscomsolution.com.


Series Navigation<< Hướng dẫn sử dụng JSON trong C#

Leave a Reply