การคุ้มครองการชำระเงินรายละเอียด
- การแก้ไขภายในแพ็กเกจไม่มีค่าใช้จ่าย
- หากคุณไม่ตอบกลับภายใน 3 วันหลังส่งมอบ งานจะถูกยอมรับโดยอัตโนมัติ
เงินจะถูกพักไว้เมื่อคุณชำระ และจะถูกโอนก็ต่อเมื่อคุณยอมรับงานแล้วเท่านั้น

ตัวอย่างผลงาน
รวมไฟล์ยอดขายรายเดือนของ 9 ร้านเป็นรายงาน Excel ไฟล์เดียว
วิธีรัน
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO โฟลเดอร์: sales/2026-10 พบ 9 ไฟล์
2026-11-02 09:14:03 INFO shop-01.csv: 1,284 แถว
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 แถว
2026-11-02 09:14:04 WARN shop-07.csv: ข้าม 3 แถวที่ไม่มีราคา (บรรทัด 88, 412, 913)
2026-11-02 09:14:05 INFO เสร็จแล้ว: 10,412 แถว -> report-2026-10.xlsx (ชีต “ยอดขาย” และ “ยอดรวม”)
ตั้งค่าในไฟล์ ไม่ต้องแก้โค้ด
ชื่อคอลัมน์ของแต่ละสาขาอยู่ใน settings.ini ดังนั้นสาขาใหม่หรือคอลัมน์ที่เปลี่ยนชื่อก็แค่เพิ่มหนึ่งบรรทัดในไฟล์นั้น:
[columns]
date = วันที่, วันที่ขาย, วัน
product = สินค้า, รายการ, ชื่อสินค้า
quantity = จำนวน, ปริมาณ, ชิ้น
price = ราคา, ราคาต่อหน่วย
ตัวอย่างโค้ดบางส่วน
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""อ่านไฟล์ของสาขาหนึ่งและตั้งชื่อคอลัมน์ให้ตรงกับรายงาน"""
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}: ไม่พบคอลัมน์สำหรับ “{name}” (ค้นหาจาก {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
ไฟล์ที่ส่งมอบ: ไฟล์ ZIP ที่มี merge_sales.py (310 บรรทัด) settings.ini requirements.txt และ README อธิบายการติดตั้ง Python การรันสคริปต์ และความหมายของแต่ละข้อความในล็อก ลูกค้ารันสคริปต์บนคอมพิวเตอร์ของตัวเอง
ลูกค้า: ร้านเครื่องเขียนเครือเล็ก ๆ 9 สาขา แต่ละสาขาส่งยอดขายของเดือนมาเป็นไฟล์ CSV หรือ Excel โดยชื่อคอลัมน์ต่างกันเล็กน้อย งาน: สคริปต์ตัวเดียวที่อ่านทุกไฟล์ในโฟลเดอร์ ปรับคอลัมน์ให้เป็นรูปแบบเดียวกัน แล้วเขียนรายงาน Excel ไฟล์เดียวที่มียอดขายทั้งหมดและชีตสรุปยอดรวมแยกตามสาขา
ลูกค้าและข้อมูลทั้งหมดเป็นเรื่องสมมติ
เกี่ยวกับบริการนี้
รายชื่อติดต่อที่ส่งออกจากร้านค้า CRM หรือการลงทะเบียนงานอีเวนต์ แทบไม่เคยตรงกับที่บริการส่งอีเมลต้องการนำเข้า: ชื่อคอลัมน์ต่างกัน ชื่อและนามสกุลอยู่ในเซลล์เดียว แท็กอยู่ในที่แปลก ๆ และคนที่ยกเลิกการรับแล้วยังอยู่ในรายชื่อ สคริปต์ Python นี้อ่านไฟล์ส่งออกของคุณและเขียน CSV ที่สะอาดหนึ่งไฟล์ในรูปแบบนำเข้าของบริการคุณ: แยกชื่อถ้าจำเป็น จับคู่ฟิลด์และแท็ก ตัดอีเมลที่รูปแบบผิดและรายการซ้ำออก และตั้งแต่สแตนดาร์ดขึ้นไป เก็บเฉพาะคนที่มีเครื่องหมายยินยอมและนำคนที่ยกเลิกการรับออก พร้อมไฟล์ของแถวที่ถูกตัดออกให้คุณตรวจ สคริปต์นี้ใช้กับรายชื่อติดต่อของคุณเองที่ยินยอมรับข่าวสารจากคุณเท่านั้น ไม่ใช้กับรายชื่อที่ซื้อมาหรือดึงมาจากที่อื่น สคริปต์รันบนคอมพิวเตอร์ของคุณและไม่เชื่อมต่อกับบริการ คุณนำเข้าไฟล์เอง
สิ่งที่รวมอยู่ในบริการ
- สิ่งที่คุณจะได้รับไฟล์ ZIP ที่มีสคริปต์ Python, README พร้อมคำแนะนำทีละขั้นตอน และตั้งแต่สแตนดาร์ดขึ้นไป มีไฟล์ตั้งค่าพร้อมการจับคู่ฟิลด์และแท็ก โค้ดยังแสดงบนหน้าคำสั่งซื้อด้วย
- รูปแบบของบริการคุณตามเทมเพลตนำเข้าหรือไฟล์ตัวอย่าง
- เคารพความยินยอมตั้งแต่สแตนดาร์ดขึ้นไป เฉพาะคนที่ยินยอม ไม่รวมคนที่ยกเลิกการรับ
- ตัดรายการซ้ำและพิมพ์ผิดออกตัดที่อยู่ที่รูปแบบผิดและรายการซ้ำออก
- เก็บแถวที่ถูกตัดไว้ไฟล์แยกที่แสดงว่าอะไรถูกตัดออกและเพราะอะไร
- โค้ดที่อ่านง่ายมีคอมเมนต์ เพิ่มฟิลด์ภายหลังได้ง่าย
วิธีการทำงาน
- 1ตัวอย่างคุณส่งแถวสมมติจากแต่ละไฟล์ส่งออกและรูปแบบนำเข้าของบริการคุณ
- 2โค้ดเราเขียนสคริปต์และคู่มือการรัน
- 3ทดลองใช้คุณรัน ดูแถวที่ถูกตัดออก และนำเข้ารายชื่อทดสอบชุดเล็ก
- 4การแก้ไขคุณขอแก้ไขได้ภายในแพ็กเกจและส่งข้อความแจ้งข้อผิดพลาดมาหากมี
สิ่งที่เราต้องการจากคุณ
หัวตารางและ 10-20 แถวของแต่ละไฟล์ส่งออก โดยใช้ชื่อและอีเมลสมมติแต่คงรูปแบบเดิม คอลัมน์ใดแสดงความยินยอมและคอลัมน์ใดแสดงการยกเลิกการรับ บริการส่งอีเมลที่คุณใช้ และเทมเพลตนำเข้าหรือลิงก์ไปยังหน้าช่วยเหลือเรื่องการนำเข้า และควรตั้งแท็กหรือกลุ่มอย่างไร รายชื่อติดต่อรวบรวมมาอย่างไร (ร้านค้าของคุณ แบบฟอร์มลงทะเบียน งานอีเวนต์) อย่าส่งรายชื่อจริงมา
เราจะถามคุณว่า:
- รายชื่อติดต่อมาจากไหน
- คุณจะนำเข้าไปยังบริการส่งอีเมลใด
- บันทึกความยินยอมไว้อย่างไร
- ต้องการแท็กหรือกลุ่มไหม
เปรียบเทียบแพ็กเกจ
| แพ็กเกจ | เบสิกหนึ่งไฟล์ส่งออก หนึ่งรูปแบบ฿544 | สแตนดาร์ดไฟล์ส่งออกพร้อมไฟล์ตั้งค่า฿1,122 | พรีเมียมเครื่องมือรายชื่อติดต่อ฿2,278 |
|---|---|---|---|
| กำหนดส่ง | 1 วัน | 2 วัน | 3 วัน |
| การแก้ไข | 1 | 2 | 3 |
| โค้ด | ไม่เกิน 150 บรรทัด | ไม่เกิน 400 บรรทัด | ไม่เกิน 1,000 บรรทัด |
| ไฟล์โค้ด | 1 | ไม่เกิน 3 | ไม่เกิน 8 |
| ไฟล์ตั้งค่า | ไม่มี | มี | มี |
| ข้อความแจ้งข้อผิดพลาดที่ชัดเจนและล็อก | ไม่มี | มี | มี |
| ตัวเลือกการรันและคู่มือการตั้งเวลารัน | ไม่มี | ไม่มี | มี |
| คู่มือการติดตั้งและการรัน (README) | มี | มี | มี |
| ภาษา | Python | Python | Python |
| สั่งซื้อ เบสิก | สั่งซื้อ สแตนดาร์ด | สั่งซื้อ พรีเมียม |
การคุ้มครองการชำระเงิน
คุณชำระเงินเมื่อสั่งซื้อ แต่เงินจะถูกโอนเฉพาะสำหรับงานที่ยอมรับแล้วเท่านั้น
- ราคาคงที่ราคาแพ็กเกจจะไม่เปลี่ยนแปลงหลังจากคุณชำระเงิน
- เงินถูกพักไว้เมื่อคุณชำระเงิน ยอดเงินจะถูกพักไว้เท่านั้น และจะถูกโอนออกเมื่อคุณยอมรับงานแล้ว
- ตรวจสอบก่อนส่งมอบผลงานทุกชิ้นผ่านการตรวจสอบคุณภาพก่อนถึงมือคุณ และคุณจะเห็นผลงานในหน้าคำสั่งซื้อก่อนยอมรับงาน
- แก้ไขฟรีขอแก้ไขภายในขอบเขตรายละเอียดงานของคุณได้ตามจำนวนครั้งที่แพ็กเกจกำหนด
- ยอมรับงานหลัง 3 วันหากภายใน 3 วันหลังส่งมอบ คุณไม่ได้ยอมรับงานหรือขอแก้ไข งานจะถูกยอมรับโดยอัตโนมัติ หากคุณเขียนข้อความในแชทคำสั่งซื้อหลังส่งมอบ คำสั่งซื้อจะรอไว้ก่อน เมื่อเราตอบกลับแล้ว เราอาจเริ่มนับ 3 วันใหม่ และจะแจ้งให้ทราบในแชท
- ทำใหม่หรือคืนเงินเต็มจำนวนหากผลงานไม่ตรงตามรายละเอียดงานและการแก้ไขยังไม่ช่วย หรืองานใช้เวลาเกินกำหนดส่งมากกว่าสองเท่า ให้เขียนแจ้งในแชทคำสั่งซื้อ เราจะทำงานใหม่หรือคืนเงินให้เต็มจำนวน
คำถามและคำตอบ
ใช้กับรายชื่อที่ซื้อมาได้ไหม
ไม่ได้ สคริปต์นี้สำหรับรายชื่อติดต่อของคุณเองที่ยินยอมรับอีเมลจากคุณ รายชื่อที่ซื้อมาหรือดึงมาจากที่อื่นขัดต่อกฎของบริการส่งอีเมลและกฎหมายในหลายประเทศ
สคริปต์อัปโหลดรายชื่อติดต่อขึ้นบริการให้ไหม
ไม่ สคริปต์สร้างไฟล์ คุณนำเข้าในบัญชีบริการส่งอีเมลของคุณ ซึ่งจะขอให้คุณยืนยันด้วยว่ารายชื่อติดต่อยินยอมแล้ว
สคริปต์จะตรวจว่าอีเมลมีอยู่จริงไหม
สคริปต์ตรวจว่าแต่ละที่อยู่เขียนถูกต้อง และแจ้งการพิมพ์ชื่อโดเมนผิดที่พบบ่อย ส่วนกล่องจดหมายมีอยู่จริงหรือไม่ มีเพียงบริการอีเมลที่รู้ และบริการส่งอีเมลของคุณจะรายงานอีเมลตีกลับหลังส่ง
รายชื่อผู้ติดต่อของฉันปลอดภัยไหม
ข้อมูลอยู่บนคอมพิวเตอร์ของคุณ: คุณรันสคริปต์เอง และเราเห็นเพียงแถวสมมติที่คุณส่งมา
ไม่พบคำตอบใช่ไหม