Lập trìnhBảo vệ thanh toánChi tiết
- Chỉnh sửa trong phạm vi gói là miễn phí.
- Nếu bạn không phản hồi trong vòng 3 ngày sau khi bàn giao, kết quả sẽ được tự động chấp nhận.
Số tiền được tạm giữ khi bạn thanh toán và chỉ được chuyển khi bạn chấp nhận kết quả.

Ví dụ kết quả
Gộp file doanh số hằng tháng của 9 cửa hàng thành một báo cáo Excel
Cách chạy
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO Thư mục: sales/2026-10, tìm thấy 9 file
2026-11-02 09:14:03 INFO shop-01.csv: 1.284 dòng
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 dòng
2026-11-02 09:14:04 WARN shop-07.csv: bỏ qua 3 dòng không có giá (dòng 88, 412, 913)
2026-11-02 09:14:05 INFO Xong: 10.412 dòng -> report-2026-10.xlsx (sheet “Doanh số” và “Tổng cộng”)
Cài đặt, không phải code
Tên cột của từng cửa hàng nằm trong settings.ini, nên thêm cửa hàng mới hay đổi tên cột chỉ là thêm một dòng ở đó:
[columns]
date = Ngày, Ngày bán, Ngày giao dịch
product = Sản phẩm, Mặt hàng, Tên hàng
quantity = SL, Số lượng, Cái
price = Giá, Đơn giá
Một phần code
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""Đọc file của một cửa hàng và đặt cho các cột tên theo báo cáo."""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}: không có cột cho “{name}” (đã tìm: {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
File bàn giao: file ZIP gồm merge_sales.py (310 dòng), settings.ini, requirements.txt và README hướng dẫn cài Python, chạy script và ý nghĩa của từng thông báo trong nhật ký. Khách hàng tự chạy script trên máy tính của mình.
Khách hàng: một chuỗi nhỏ gồm 9 cửa hàng văn phòng phẩm; mỗi cửa hàng gửi doanh số của tháng dưới dạng file CSV hoặc Excel, với tên cột hơi khác nhau. Yêu cầu: một script đọc mọi file trong một thư mục, đưa các cột về cùng một dạng và ghi ra một báo cáo Excel duy nhất gồm toàn bộ doanh số và một sheet tổng theo từng cửa hàng.
Khách hàng và mọi thông tin đều là giả định.
Về dịch vụ này
Khi cần viết cùng một email cho 80 khách hàng, học viên hay đối tác, mỗi người có tên, ngày hoặc số tiền riêng, sao chép và dán mất hàng giờ. Google Apps Script này nằm ngay trong Google Trang tính của bạn và gửi email cá nhân hóa cho từng dòng từ chính Gmail của bạn: điền {{Name}}, {{Date}} và bất kỳ cột nào khác vào mẫu email, ghi Đã gửi và thời gian vào dòng và bỏ qua dòng đã gửi, nên bạn có thể chạy lại an toàn. Script dành cho danh sách người của chính bạn đang chờ email từ bạn, không dành cho danh sách mua lại hay gửi email hàng loạt cho người lạ. Google giới hạn số email một script được gửi mỗi ngày, với Gmail miễn phí thấp hơn Google Workspace; script dừng ở mức giới hạn và gửi tiếp sau đó. Bạn tự cài đặt và chạy script trong tài khoản của mình.
Bao gồm những gì
- Bạn nhận được gìFile ZIP gồm code Apps Script và README hướng dẫn cách dán vào bảng tính, cấp quyền truy cập và gửi; code cũng được hiển thị trên trang đơn hàng.
- Trường cá nhân hóaBất kỳ cột nào của bảng tính trong tiêu đề và nội dung
- Từ chính Gmail của bạnThư trả lời về lại bạn, như mọi email bạn gửi
- Đánh dấu đã gửiMỗi dòng ghi thời điểm gửi, nên không gì bị gửi hai lần
- Trong giới hạn của GoogleDừng ở giới hạn hằng ngày và gửi tiếp sau đó
- Code dễ đọcCó chú thích, dễ đổi mẫu email về sau
Cách hoạt động
- 1Công việcBạn gửi các cột của bảng tính và email bạn muốn gửi
- 2CodeChúng tôi viết script và hướng dẫn cài đặt
- 3Chạy thửBạn dán vào bản sao bảng tính và gửi thử tới địa chỉ của chính mình trước
- 4Chỉnh sửaBạn yêu cầu chỉnh sửa trong phạm vi gói và gửi thông báo lỗi nếu có
Chúng tôi cần gì từ bạn
Tên các cột trong bảng tính và hai ba dòng với tên và địa chỉ giả, tiêu đề và nội dung email kèm vị trí đặt các cột, và đó là văn bản thường hay có định dạng từ bản nháp Gmail. Những người trong danh sách là ai và vì sao họ có trong đó (khách hàng, hội viên, học viên của bạn), khoảng bao nhiêu dòng, và bạn dùng Gmail miễn phí hay Google Workspace. File đính kèm, nếu có, và vị trí của chúng trên Drive.
Chúng tôi sẽ hỏi bạn:
- Bạn đang viết cho ai?
- Bảng tính có những cột nào?
- Email cần nói gì?
- Gmail miễn phí hay Google Workspace?
So sánh các gói
| Các gói | Cơ bảnTrộn thư đơn giản434.000 ₫ | Tiêu chuẩnTrộn thư có file cài đặt894.000 ₫ | Cao cấpCông cụ trộn thư1.815.000 ₫ |
|---|---|---|---|
| Thời hạn | 1 ngày | 2 ngày | 3 ngày |
| Số lần chỉnh sửa | 1 | 2 | 3 |
| Code | tối đa 150 dòng | tối đa 400 dòng | tối đa 1.000 dòng |
| Số file code | 1 | tối đa 3 | tối đa 8 |
| File cài đặt | Không | Có | Có |
| Thông báo lỗi rõ ràng và nhật ký | Không | Có | Có |
| Tùy chọn chạy và hướng dẫn chạy theo lịch | Không | Không | Có |
| Hướng dẫn cài đặt và chạy (README) | Có | Có | Có |
| Ngôn ngữ | Google Apps Script | Google Apps Script | Google Apps Script |
| Đặt hàng Cơ bản | Đặt hàng Tiêu chuẩn | Đặt hàng Cao cấp |
Bảo vệ thanh toán
Bạn thanh toán khi đặt hàng, nhưng tiền chỉ được chuyển cho kết quả đã được chấp nhận.
- Giá cố địnhGiá gói không thay đổi sau khi bạn thanh toán.
- Số tiền được tạm giữKhi bạn thanh toán, số tiền chỉ được tạm giữ. Tiền được chuyển cho dịch vụ khi bạn chấp nhận kết quả.
- Kiểm tra trước khi bàn giaoMọi kết quả đều được kiểm tra chất lượng trước khi đến tay bạn, và bạn xem được kết quả trên trang đơn hàng trước khi chấp nhận.
- Chỉnh sửa miễn phíYêu cầu chỉnh sửa trong phạm vi bản yêu cầu của bạn, với số lần mà gói cho phép.
- Tự động chấp nhận sau 3 ngàyNếu trong vòng 3 ngày sau khi bàn giao, bạn không chấp nhận kết quả cũng không yêu cầu chỉnh sửa, kết quả sẽ được tự động chấp nhận. Nếu bạn nhắn tin trong chat đơn hàng sau khi bàn giao, đơn hàng sẽ chờ; sau khi trả lời, chúng tôi có thể tính lại 3 ngày từ đầu và sẽ thông báo trong chat.
- Làm lại hoặc hoàn tiền toàn bộNếu kết quả không đúng với yêu cầu của bạn và các lần chỉnh sửa không khắc phục được, hoặc công việc kéo dài quá gấp đôi thời hạn, hãy nhắn tin trong chat đơn hàng: chúng tôi sẽ làm lại hoặc hoàn tiền toàn bộ.
Hỏi đáp
Script gửi được bao nhiêu email mỗi ngày?
Bằng mức Google cho phép tài khoản của bạn gửi từ script, với Gmail miễn phí thấp hơn Google Workspace; Google công bố con số hiện hành trên trang hạn mức Apps Script. Script dừng ở giới hạn và lần chạy sau tiếp tục từ dòng đầu tiên chưa gửi.
Tôi có gửi tới danh sách mua lại được không?
Không. Script dành cho những người biết bạn và đang chờ email từ bạn, như khách hàng hay hội viên. Danh sách mua lại và gửi email hàng loạt cho người lạ vi phạm quy định của Google và có thể khiến tài khoản bị khóa.
Script có thêm liên kết hủy đăng ký không?
Script có thể thêm một dòng mời người nhận trả lời nếu không muốn nhận những email này, và bỏ qua các dòng bạn đánh dấu đã hủy đăng ký. Với bản tin cần hủy đăng ký bằng một cú nhấp, dịch vụ gửi email chuyên dụng sẽ phù hợp hơn.
Các bạn có được truy cập Gmail của tôi không?
Không. Bạn dán code vào bảng tính của chính mình, và Google hỏi bạn, không phải chúng tôi, để cho phép gửi email. Chúng tôi không bao giờ đăng nhập vào tài khoản của bạn.
Chưa tìm thấy câu trả lời?


