Menu

App script quản lý rủi ro cho cá nhân & doanh nghiệp với báo cáo chuẩn định dạng biểu đồ

Tự động hóa cập nhật dữ liệu Excel bằng Python - Chia sẻ kinh nghiệm xử lý nhiều sheet

Mạnh Đoan Trầm 11/04/2026 02:35 361 lượt xem 3 trả lời

Chào các bác, dạo này em đang làm một dự án nhỏ tự động hóa việc cập nhật dữ liệu từ nhiều nguồn về một file Excel tổng. Em có tham khảo các bài viết trên diễn đàn về Python và Excel, thấy nhiều anh em dùng Pandas để xử lý rất hiệu quả. Tuy nhiên, em đang gặp chút vướng mắc khi muốn cập nhật dữ liệu vào nhiều sheet khác nhau trong cùng một file Excel.

Cụ thể, em có một file Excel với các sheet như 'Sheet1', 'Sheet2', 'Sheet3',... và em muốn đọc dữ liệu từ các file CSV khác nhau, sau đó ghi từng file CSV vào một sheet tương ứng. Em đã thử dùng pd.read_csv() để đọc và df.to_excel() để ghi, nhưng nó chỉ ghi được vào sheet đầu tiên hoặc tạo một file excel mới.

Có anh em nào có kinh nghiệm xử lý trường hợp này không ạ? Em đang tìm cách để ghi dữ liệu vào từng sheet cụ thể mà không ghi đè lên nhau hoặc tạo file mới. Em nghĩ có thể dùng ExcelWriter của Pandas, nhưng chưa rõ cách sử dụng cho trường hợp nhiều sheet như em mô tả.

Em xin cảm ơn trước ạ!

0

Chào bạn, mình cũng đang mày mò vụ này với Python và Pandas đây! Vụ ghi dữ liệu vào nhiều sheet trong một file Excel mình cũng từng gặp khó khăn.

Thông thường, mình hay dùng pd.ExcelWriter để xử lý. Bạn thử mở file Excel bằng ExcelWriter ở chế độ append (nếu file đã có sẵn sheet) hoặc chế độ ghi bình thường. Sau đó, với mỗi DataFrame bạn muốn ghi vào một sheet, bạn dùng phương thức .to_excel() và chỉ định rõ tên sheet thông qua tham số sheet_name.

Ví dụ:


with pd.ExcelWriter('du_lieu_tong.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Sheet1', index=False)
    df2.to_excel(writer, sheet_name='Sheet2', index=False)
    # ... và cứ thế với các sheet khác

Không biết bạn đang gặp lỗi cụ thể nào hay vướng mắc ở khâu nào vậy? Chia sẻ thêm để mọi người cùng gỡ rối nhé!

4

Hay quá bạn ơi, vụ tự động hóa này đúng là "cứu cánh" cho dân văn phòng mình! Mình cũng đang vật lộn với việc gom dữ liệu từ nhiều file về một chỗ.

Về việc ghi vào nhiều sheet, ngoài cách dùng pd.ExcelWriter như bạn chia sẻ, mình còn hay thử dùng thư viện openpyxl để xử lý trực tiếp các file Excel đã có sẵn sheet. Nó cho phép mình truy cập và ghi dữ liệu vào từng sheet một cách linh hoạt hơn, đặc biệt khi cần thêm bớt cột hay định dạng.

Bạn có thể chia sẻ rõ hơn về đoạn code xử lý của bạn không? Liệu có phải bạn đang gặp vấn đề với việc ghi đè dữ liệu hay ghi sai sheet không?

4

Cảm ơn bạn đã chia sẻ kinh nghiệm quý báu về pd.ExcelWriter! Mình cũng đã thử cách này và nó hoạt động khá ổn cho việc ghi dữ liệu mới. Tuy nhiên, trường hợp của mình phức tạp hơn một chút là file Excel tổng đã có sẵn các sheet với cấu trúc dữ liệu nhất định, và mình muốn cập nhật hoặc thêm dữ liệu vào các sheet đó chứ không hẳn là ghi đè hoàn toàn.

Ví dụ, mình có một file DuLieuTong.xlsx với 3 sheet: 'BaoCaoThang1', 'BaoCaoThang2', 'BaoCaoThang3'. Các file CSV nguồn thì cập nhật dữ liệu mới hàng ngày. Mình muốn dùng Python để đọc dữ liệu từ CSV, sau đó thêm các dòng dữ liệu mới vào sheet tương ứng trong DuLieuTong.xlsx, ví dụ như thêm vào cuối sheet 'BaoCaoThang1' chẳng hạn.

Liệu pd.ExcelWriter có hỗ trợ tốt cho việc append dữ liệu vào cuối sheet đã có sẵn hay mình cần kết hợp thêm thư viện nào khác như openpyxl mà bạn đề cập không nhỉ? Rất mong nhận được thêm lời khuyên từ bạn!

3

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký