Selamat datang di tutorial tentang cara mengekspor data dari database ke spreadsheet Excel dengan Python. Jadi Anda ingin membuat laporan Excel atau membuat daftar dari database? . Baca terus untuk contohnya
ⓘ Saya telah menyertakan file zip dengan semua kode sumber di awal tutorial ini, jadi Anda tidak perlu menyalin-tempel semuanya… Atau jika Anda hanya ingin langsung masuk
DAFTAR ISI
UNDUH & CATATAN
Pertama, berikut adalah tautan unduhan ke kode contoh seperti yang dijanjikan
CATATAN CEPAT
- Buat folder proyek, mis. g. D:\xlsdb_, unzip kode di dalam folder ini
- Arahkan ke folder proyek di baris perintah cd D:\xlsdb, buat lingkungan virtual untuk tidak mengacaukan proyek Anda yang lain
- virtualenv venv
- Jendela – venv\scripts\activate
- Mac/Linux – venv/bin/activate
- Dapatkan semua paket yang dibutuhkan – pip install openpyxl
- Buat database dummy dengan menjalankan python S1B_create.py
- Luncurkan # (A) LOAD PACKAGES import sqlite3, os from sqlite3 import Error # (B) DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "s1_users.sql" # (C) DELETE OLD DATABASE IF EXIST if os.path.exists(DBFILE): os.remove(DBFILE) # (D) IMPORT SQL conn = sqlite3.connect(DBFILE) with open(SQLFILE) as f: conn.executescript(f.read()) conn.commit() conn.close() print("Database created!")_0 untuk contoh ekspor
DOWNLOAD KODE CONTOH
Klik di sini untuk mengunduh semua kode sumber contoh, saya telah merilisnya di bawah lisensi MIT, jadi silakan membangun di atasnya atau menggunakannya dalam proyek Anda sendiri
EKSPOR KE EXCEL
Baiklah, sekarang mari kita masuk ke contoh mengekspor dari database ke file Excel
LANGKAH 1) DATABASE DUMMY
1A) TABEL & DATA PENGGUNA
S1A_pengguna. sql
-- (A) USERS TABLE CREATE TABLE users ( uid INTEGER, name TEXT NOT NULL, email TEXT NOT NULL, tel TEXT NOT NULL, PRIMARY KEY("uid" AUTOINCREMENT) ); -- (B) DUMMY DATA INSERT INTO "users" VALUES (1,'Jo Doe','jo@doe.com','465785'), (2,'Joa Doe','joa@doe.com','123456'), (3,'Job Doe','job@doe.com','234567'), (4,'Joe Doe','joe@doe.com','345678'), (5,'Jog Doe','jog@doe.com','578456'), (6,'Joh Doe','joh@doe.com','378945'), (7,'Joi Doe','joi@doe.com','456789'), (8,'Jon Doe','jon@doe.com','987654'), (9,'Jor Doe','jor@doe.com','754642'), (10,'Joy Doe','joy@doe.com','124578');_Untuk contoh ini, kita akan menggunakan tabel dummy # (A) LOAD PACKAGES import sqlite3, os from sqlite3 import Error # (B) DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "s1_users.sql" # (C) DELETE OLD DATABASE IF EXIST if os.path.exists(DBFILE): os.remove(DBFILE) # (D) IMPORT SQL conn = sqlite3.connect(DBFILE) with open(SQLFILE) as f: conn.executescript(f.read()) conn.commit() conn.close() print("Database created!")1 sederhana ini
- # (A) LOAD PACKAGES import sqlite3, os from sqlite3 import Error # (B) DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "s1_users.sql" # (C) DELETE OLD DATABASE IF EXIST if os.path.exists(DBFILE): os.remove(DBFILE) # (D) IMPORT SQL conn = sqlite3.connect(DBFILE) with open(SQLFILE) as f: conn.executescript(f.read()) conn.commit() conn.close() print("Database created!")2 ID Pengguna. Kunci primer dan peningkatan otomatis
- # (A) LOAD PACKAGES import sqlite3, os from sqlite3 import Error # (B) DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "s1_users.sql" # (C) DELETE OLD DATABASE IF EXIST if os.path.exists(DBFILE): os.remove(DBFILE) # (D) IMPORT SQL conn = sqlite3.connect(DBFILE) with open(SQLFILE) as f: conn.executescript(f.read()) conn.commit() conn.close() print("Database created!")3 Nama pengguna
- # (A) LOAD PACKAGES import sqlite3, os from sqlite3 import Error # (B) DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "s1_users.sql" # (C) DELETE OLD DATABASE IF EXIST if os.path.exists(DBFILE): os.remove(DBFILE) # (D) IMPORT SQL conn = sqlite3.connect(DBFILE) with open(SQLFILE) as f: conn.executescript(f.read()) conn.commit() conn.close() print("Database created!")4 Alamat email pengguna
- # (A) LOAD PACKAGES import sqlite3, os from sqlite3 import Error # (B) DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "s1_users.sql" # (C) DELETE OLD DATABASE IF EXIST if os.path.exists(DBFILE): os.remove(DBFILE) # (D) IMPORT SQL conn = sqlite3.connect(DBFILE) with open(SQLFILE) as f: conn.executescript(f.read()) conn.commit() conn.close() print("Database created!")5 Nomor telepon
1B) BUAT DATABASE
S1B_buat. py
# (A) LOAD PACKAGES import sqlite3, os from sqlite3 import Error # (B) DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "s1_users.sql" # (C) DELETE OLD DATABASE IF EXIST if os.path.exists(DBFILE): os.remove(DBFILE) # (D) IMPORT SQL conn = sqlite3.connect(DBFILE) with open(SQLFILE) as f: conn.executescript(f.read()) conn.commit() conn.close() print("Database created!")Untuk mempermudah, tanpa harus menginstal database apa pun – Kami menggunakan SQLite di sini. Skrip ini seharusnya sudah cukup jelas, kami hanya membuat file database # (A) LOAD PACKAGES import sqlite3, os from sqlite3 import Error # (B) DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "s1_users.sql" # (C) DELETE OLD DATABASE IF EXIST if os.path.exists(DBFILE): os.remove(DBFILE) # (D) IMPORT SQL conn = sqlite3.connect(DBFILE) with open(SQLFILE) as f: conn.executescript(f.read()) conn.commit() conn.close() print("Database created!")6, dan mengimpor # (A) LOAD PACKAGES import sqlite3, os from sqlite3 import Error # (B) DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "s1_users.sql" # (C) DELETE OLD DATABASE IF EXIST if os.path.exists(DBFILE): os.remove(DBFILE) # (D) IMPORT SQL conn = sqlite3.connect(DBFILE) with open(SQLFILE) as f: conn.executescript(f.read()) conn.commit() conn.close() print("Database created!")7 untuk membuat tabel
LANGKAH 2) EKSPOR KE EXCEL
S2_ekspor. py
# (A) INIT # (A1) LOAD MODULES import sqlite3, os, openpyxl from sqlite3 import Error # (A2) SETTINGS DBFILE = "users.db" # (B) OPEN DATABASE & CREATE EXCEL conn = sqlite3.connect(DBFILE) cursor = conn.cursor() book = openpyxl.Workbook() sheet = book.active # (C) EXPORT DATA TO EXCEL cursor.execute("SELECT * FROM `users`") results = cursor.fetchall() i = 0 for row in results: i += 1 j = 1 for col in row: cell = sheet.cell(row = i, column = j) cell.value = col j += 1 # (D) SAVE EXCEL FILE & CLOSE DB book.save("demo.xlsx") conn.close()Itu saja untuk tutorialnya, dan ini adalah bagian kecil tentang beberapa tambahan dan tautan yang mungkin berguna bagi Anda
BAGAIMANA DENGAN MYSQL, MSSQL, POSTGRESQL, DLL…
Nah, tutorial ini tidak akan pernah berakhir jika kita menelusuri setiap basis data di Bumi. Jadi saya akan membiarkan ini sebagai “pekerjaan rumah” – Pelajari sendiri dasar-dasar database, instal alat manajemen database pilihan Anda sendiri, ubah SQL untuk tabel # (A) LOAD PACKAGES import sqlite3, os from sqlite3 import Error # (B) DATABASE + SQL FILE DBFILE = "users.db" SQLFILE = "s1_users.sql" # (C) DELETE OLD DATABASE IF EXIST if os.path.exists(DBFILE): os.remove(DBFILE) # (D) IMPORT SQL conn = sqlite3.connect(DBFILE) with open(SQLFILE) as f: conn.executescript(f.read()) conn.commit() conn.close() print("Database created!")1, dan perbarui # (A) INIT # (A1) LOAD MODULES import sqlite3, os, openpyxl from sqlite3 import Error # (A2) SETTINGS DBFILE = "users.db" # (B) OPEN DATABASE & CREATE EXCEL conn = sqlite3.connect(DBFILE) cursor = conn.cursor() book = openpyxl.Workbook() sheet = book.active # (C) EXPORT DATA TO EXCEL cursor.execute("SELECT * FROM `users`") results = cursor.fetchall() i = 0 for row in results: i += 1 j = 1 for col in row: cell = sheet.cell(row = i, column = j) cell.value = col j += 1 # (D) SAVE EXCEL FILE & CLOSE DB book.save("demo.xlsx") conn.close()0 untuk terhubung ke database pilihan Anda
MENAMBAHKAN FORMULA
Sekadar catatan singkat di sini bahwa kita juga dapat mendefinisikan rumus Excel, misalnya, # (A) INIT # (A1) LOAD MODULES import sqlite3, os, openpyxl from sqlite3 import Error # (A2) SETTINGS DBFILE = "users.db" # (B) OPEN DATABASE & CREATE EXCEL conn = sqlite3.connect(DBFILE) cursor = conn.cursor() book = openpyxl.Workbook() sheet = book.active # (C) EXPORT DATA TO EXCEL cursor.execute("SELECT * FROM `users`") results = cursor.fetchall() i = 0 for row in results: i += 1 j = 1 for col in row: cell = sheet.cell(row = i, column = j) cell.value = col j += 1 # (D) SAVE EXCEL FILE & CLOSE DB book.save("demo.xlsx") conn.close()1
LINK dan REFERENSI
- Python MySQL
- Phyton MSSQL
- Python MongoDB
- Python PostgreSQL
- openpyxl
TAMAT
Terima kasih telah membaca, dan kami telah sampai pada akhir. Saya harap ini membantu Anda untuk lebih memahami, dan jika Anda ingin berbagi sesuatu dengan panduan ini, jangan ragu untuk berkomentar di bawah ini. Semoga berhasil dan selamat membuat kode