Penulis | 11haoren
Pemimpin Redaksi | Guo Rui
Karena saya sering membagi sheet menjadi workbook, dan mengirimkannya ke objek yang berbeda setelah dipecah, dan menggunakan Outlook untuk mengirim email di kantor, maka artikel ini menyebut akun Outlook untuk mengirim email sebagai contoh: pisahkan sheet menjadi beberapa Atas dasar sheet, kode tersebut dimodifikasi untuk merealisasikan satu lembar terbagi menjadi beberapa workbook. Jika Anda ingin menelepon kotak surat lain, silakan merujuk ke tautan referensi di akhir artikel. Anda juga dapat menarik kesimpulan tentangnya.
Pisahkan satu tabel menjadi beberapa tabel
Kode pembongkaran ini adalah yang paling ringkas yang bisa saya temukan. Pertama, gunakan ExcelWriter untuk membuat workbook untuk menampung tabel setelah membongkar tabel, lalu panggil loop For untuk melintasi kolom. Area_list diambil dari kolom tabel. Kolom ini dibagi menjadi banyak tabel karena terdapat faktor-faktor, seperti Beijing, Shenzhen dan sebagainya.
Akhirnya, tabel dibuat dengan mengulang setiap faktor, dan ditulis ke dalam buku kerja yang dibuat sebelumnya hingga perulangan berakhir.
Tip: Python sensitif terhadap spasi. Jika Anda tidak percaya pada saya, sejajarkan writer.save dengan baris sebelumnya untuk melihat apa pengaruhnya.
(Meja besar)
(Tabel terpisah)
impor panda sebagai pdimport xlsxwriter import xlrddata = pd.read_excel (r "C: \ Users \ PycharmProjects \ Pisahkan pengiriman email otomatis \ chaifen.xlsx", encoding = 'gbk') area_list = list (set (data)) writer = pd. ExcelWriter (r "C: \ Users \ PycharmProjects \ Pisahkan pengiriman email otomatis \ Disassembled table 1.xlsx", engine = 'xlsxwriter') data.to_excel (writer, sheet_name = " ", index = False) # Lintasi j di area_list: df = data df.to_excel (writer, sheet_name = j, index = False) writer.save # Kode ini harus ditambahkan, dan "tabel yang dibongkar" akan ditampilkanReferensi: https://me.csdn.net/weixin_41261833
Pisahkan tabel menjadi beberapa buku kerja
Langkah kunci untuk memecah menjadi beberapa tabel adalah cara membuat tabel, Anda dapat menggunakan to_excel, analogi tersedia, langkah kunci untuk memecah menjadi beberapa buku kerja adalah cara membuat buku kerja, menggunakan ExcelWriter, dikombinasikan dengan traversal, menghasilkan pekerjaan untuk setiap faktor Apakah sudah lengkap setelah menulis ke folder tersebut?
Tidak, setiap buku kerja tidak bisa memiliki nama yang sama, jadi perlu untuk menamai file dengan variabel, f'dapat membuat fungsi di {} berlaku.
Apakah Anda menemukan perbedaan antara writer.save dan yang sebelumnya?
data = pd.read_excel (r "C: \ Users \ PycharmProjects \ Pisahkan pengiriman email otomatis \ chaifen.xlsx", encoding = 'gbk') area_list = list (set (data)) # Lintasi untuk j di area_list: df = data writer = pd.ExcelWriter (f '{str (j)} Pisahkan pengiriman email otomatis.xlsx', engine = 'xlsxwriter') # Gunakan variabel untuk nama file df.to_excel (penulis, sheet_name = j, index = False) writer.saveKirim dan CC ke beberapa orang secara terpisah
Buat indeks lampiran dan penerima, dan gunakan variabel j yang dinamai untuk file sebelumnya untuk mengindeks ke baris di kolom 'Rek' penerima di mana kolom 'toko' sama dengan j.
Akhirnya, fungsi untuk mengirim email dibangun, termasuk penerima, CC, lampiran, isi, dll. Keseluruhan proses dari pemisahan ke email tidak melebihi 1 menit.
impor panda sebagai pdimport xlrddata = pd.read_excel (r "C: \ Users \ PycharmProjects \ Pisahkan pengiriman email otomatis \ chaifen.xlsx", encoding = 'gbk') data2 = pd.read_excel (r "C: \ Users \ PycharmProjects \ Pisahkan pengiriman surat otomatis \ Daftar personel surat.xlsx ", konverter = {'dep2': str, 'Rec': str, 'Cc': str}, encoding = 'gbk') area_list = list (set (data )) # Traverse untuk j di area_list: df = data writer = pd.ExcelWriter (f '(str (j)) Pisahkan pengiriman surat otomatis.xlsx', engine = 'xlsxwriter') df.to_excel (penulis, nama_surat = j , index = False) writer.save # Kode ini harus ditambahkan, dan "tabel yang dibongkar" akan ditampilkan untuk j di area_list: def send_mail: outlook = win32.Dispatch ('Outlook.Application') # Tulisan tetap mail_item = outlook.CreateItem (0) # 0: olMailItem mail_item.to = list (data2) #Recipient mail_item.cc = list (data2) #CC # mail.Recipients.Add (penerima) mail_item.Subject = ' Mail Test5 '+' you are the best 'mail_item.BodyFormat = 2 # 2: Format Html mail_item.HTMLBody =' '' < H2 > Halo, Ini adalah surat percobaan. < / H2 > Halo Teman-teman. Apakah Anda ingin ikut dengan kami? '' ' mail_item.Attachments.Add (r'C: \ Users \ PycharmProjects \ Pisahkan pengiriman surat otomatis '+ f' \ {str (j)} Pisahkan pengiriman surat otomatis. xlsx ', 1, 1, f' (str (j )} Pisahkan pengiriman email otomatis.xls ') mail_item. Kirim jika __name__ ==' __ main__ ': cetak kirim_mail (' berhasil ')keberhasilan!
Referensi: https://blog.csdn.net/qq_20417499/article/details/80566265
Tautan sumber: https://github.com/11haoren/Email
Penafian: Artikel ini diserahkan oleh penulis, dan hak cipta adalah miliknya.
Platform pengembangan AI one-stop killer telah hadir! Ucapkan selamat tinggal untuk beralih alat pemodelan terfragmentasi
Ide besar tentang transportasi cerdas yang dipicu oleh kemacetan lalu lintas di Jalan Lingkar Keempat di Beijing
Tolong, jangan tanya saya apa itu tumpukan!
Ide besar tentang transportasi cerdas yang dipicu oleh kemacetan lalu lintas di Jalan Lingkar Keempat di Beijing
Mesin virtual perusahaan Anda masih menganggur? Lihat praktik pengujian integrasi berkelanjutan berdasarkan Jenkins dan Kubernetes!
Dari Web1.0 hingga Web3.0: Analisis terperinci tentang perkembangan dan arah masa depan Internet dalam beberapa tahun terakhir
- "Danau Dongqian", yang merupakan kumpulan dari "ribuan hewan peliharaan", akan "memperbesarnya" lagi
- Lawan 35 putaran! 35% premium! Country Garden merampas 80 hektar rumah di Shabei seharga 530 juta yuan
- Tim Li Mu mengusulkan versi perbaikan ResNet terkuat, dengan banyak tugas mencapai SOTA | Open source
- AI grup pertemuan teratas "revisi": NeurIPS DDL diluncurkan selama 3 minggu, ICLR bahkan sponsor akan membuka video
- Saya memposting 30 yuan "lembur" di Nintendo Switch. Saya, seorang programmer, masih merasa sangat menarik
- Apakah gelar PhD benar-benar penting? Doktor dari Universitas Shanghai Jiaotong secara pribadi menggambarkan mentalitas penelitian ilmiahnya dan memenangkan 40.000 pujian
- Media Bezos menyampaikan berita tersebut: Amazon pergi karena pernyataannya, apa pun posisinya, protes tersebut
- Hasil pengobatan penyakit kritis Remdesivir terpapar lagi, 100 pasien yang sakit parah membaik dalam seminggu, dan harga saham melonjak 19%.
- MIT telah membangun sebuah kotak kecil yang dapat memantau pasien secara nirkabel dengan mahkota baru, yang dibuat oleh tim pemenang Penghargaan Sloan