Chào các anh em trong diễn đàn,
Dạo này mình đang làm một dự án cần cập nhật dữ liệu vào file Excel một cách tự động từ một API web. Sau khi tìm hiểu và thử nghiệm, mình đã dùng C# kết hợp với thư viện HttpClient để gọi API và lấy dữ liệu. Mình muốn chia sẻ lại kinh nghiệm này để mọi người tham khảo, đặc biệt là những ai đang làm việc với Excel và C#.
Ý tưởng chính:
- Sử dụng
HttpClientđể gửi yêu cầu GET/POST đến API và nhận về dữ liệu (thường là JSON). - Phân tích chuỗi JSON nhận được thành các đối tượng C# (có thể dùng thư viện
Newtonsoft.Json). - Tạo một đối tượng Excel Application hoặc sử dụng thư viện như
EPPlusđể ghi dữ liệu vào file Excel.
Ví dụ đơn giản với HttpClient và EPPlus:
Giả sử API trả về một danh sách các sản phẩm:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
// ... trong hàm gọi API
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("https://api.example.com/");
HttpResponseMessage response = await client.GetAsync("products");
response.EnsureSuccessStatusCode(); // Ném ngoại lệ nếu không thành công
string responseBody = await response.Content.ReadAsStringAsync();
List products = JsonConvert.DeserializeObject(responseBody);
// Tiếp theo là ghi dữ liệu vào Excel bằng EPPlus
// ... code EPPlus ở đây ...
}
Việc sử dụng EPPlus sẽ giúp bạn tạo file Excel mới hoặc ghi đè/thêm dữ liệu vào file có sẵn một cách dễ dàng mà không cần cài đặt Microsoft Excel trên máy chủ. Các bạn có thể tham khảo thêm tài liệu của EPPlus để biết cách tạo bảng tính, định dạng ô, tạo biểu đồ...
Hy vọng chia sẻ này hữu ích cho mọi người. Nếu có ai có kinh nghiệm khác hoặc gặp khó khăn, chúng ta cùng thảo luận nhé!