
Microsoft Excel adalah perangkat lunak spreadsheet yang digunakan untuk menyimpan dan mengelola data tabular. Selanjutnya, dengan Excel, perhitungan dapat dilakukan dengan menerapkan rumus pada data, dan visualisasi data dapat dihasilkan. Banyak tugas yang dilakukan dalam spreadsheet, seperti operasi matematika, dapat diotomatisasi melalui pemrograman, dan banyak bahasa pemrograman memiliki modul untuk memanipulasi Excel spreadsheet. Dalam tutorial ini, kami akan menunjukkan cara menggunakan modul openpyxl Python untuk membaca dan memodifikasi spreadsheet Excel.
Menginstal openpyxl
Sebelum Anda dapat menginstal openpyxl, Anda harus menginstal pip. Pip digunakan untuk menginstal paket Python. Jalankan perintah berikut di command prompt untuk melihat apakah pip diinstal.
C:Userswindows> pip help
Jika konten bantuan pip dikembalikan, maka pip diinstal; jika tidak, buka tautan berikut dan download file get-pip.py:
https://bootstrap.pypa.io/get-pip.py
Sekarang, jalankan perintah berikut untuk menginstal pip:
C:Userswindows> python get-pip.py
Setelah menginstal pip, perintah berikut dapat digunakan untuk menginstal openpyxl.
C:Userswindows> pip install openpyxl
Membuat Dokumen Excel
Pada bagian ini, kita akan menggunakan modul openpyxl untuk membuat dokumen Excel. Pertama, buka command prompt dengan mengetik ‘cmd’ di bilah pencarian; lalu, masuk
C:Userswindows> python
Untuk membuat workbook Excel, kita akan mengimpor modul openpyxl dan kemudian menggunakan metode ‘Workbook()’ untuk membuat workbook.
>>> # importing openpyxl module
>>> import openpyxl
>>> # Initializing a Workbook
>>> work_book = openpyxl.Workbook()
>>> # saving workbook as ‘example.xlsx’
>>> work_book.save(‘example.xlsx’)
Perintah di atas membuat dokumen Excel bernama example.xlsx. Selanjutnya, kita akan memanipulasi dokumen Excel ini.
Memanipulasi Lembar dalam Dokumen Excel
Kami telah membuat dokumen Excel yang disebut example.xlsx. Sekarang, kita akan memanipulasi lembar dokumen ini menggunakan Python. Modul openpyxl memiliki metode ‘create_sheet()’ yang dapat digunakan untuk membuat lembar baru. Metode ini membutuhkan dua argumen: indeks dan judul. Indeks mendefinisikan penempatan lembar menggunakan bilangan bulat non-negatif (termasuk 0), dan judul adalah judul lembar. Daftar semua lembar dalam objek work_book dapat ditampilkan dengan memanggil daftar nama lembar.
>>> # importing openpyxl
>>> import openpyxl
>>> # loading existing Excel Document into work_book Object
>>> work_book = openpyxl.load_workbook(‘example.xlsx’)
>>> # Creating a new Sheet at 0th index
>>> work_book.create_sheet(index=0, title=’First Sheet’)
<Worksheet "First Sheet">
>>> # Getting all the Sheets
>>> work_book.sheetnames
[‘First Sheet’, ‘Sheet’]
>>> # Saving Excel Document
>>> work_book.save(‘example.xlsx’)
Dalam kode di atas, kami membuat lembar bernama Lembar Pertama dan menempatkannya di indeks ke-0. Lembar yang sebelumnya terletak di indeks ke-0 dipindahkan ke indeks ke-1, seperti yang ditunjukkan pada output. Sekarang, kita akan mengubah nama sheet asli dari Sheet menjadi Second Sheet.
Atribut title memegang nama sheet. Untuk mengganti nama sheet, pertama-tama kita harus menavigasi ke sheet itu sebagai berikut.
>>> # Getting active sheet from Excel Document
>>> sheet = work_book.active
>>> # Printing Sheet Name
>>> print(sheet.title)
First Sheet
>>> # Navigating to Second Sheet (at index 1)
>>> work_book.active = 1
>>> # Getting Active Sheet
>>> sheet = work_book.active
>>> # printing Sheet Name
>>> print(sheet.title)
Sheet
>>> # Changing Sheet Title
>>> sheet.title = ‘Second Sheet’
>>> # Printing Sheet title
>>> print(sheet.title)
Second Sheet
Demikian pula, kita dapat menghapus lembar dari dokumen Excel. Modul openpyxl menawarkan metode remove() untuk menghapus sheet. Metode ini mengambil nama lembar yang akan dihapus sebagai argumen dan kemudian menghapus lembar itu. Kami dapat menghapus Lembar Kedua sebagai berikut:
>>> # removing a Sheet by name
>>> work_book.remove(work_book[‘Second Sheet’])
>>> # getting all the sheets
>>> work_book.sheetnames
[‘First Sheet’]
>>> # saving Excel Document
>>> work_book.save(‘example.xlsx’)
Menambahkan Data ke Sel
Sejauh ini,
kami telah menunjukkan kepada Anda cara membuat atau menghapus lembar dalam dokumen Excel. Sekarang, kita akan menambahkan data ke sel dari lembar yang berbeda. Dalam contoh ini, kami memiliki satu lembar bernama Lembar Pertama di dokumen kami, dan kami ingin membuat dua lembar lagi.
>>> # importing openpyxl
>>> import openpyxl
>>> # loading workbook
>>> work_book = openpyxl.load_workbook(‘example.xlsx’)
>>> # Creating a new Sheet at 1st index
>>> work_book.create_sheet(index=1, title=’Second Sheet’)
<Worksheet "Second Sheet">
>>> # creating a new Sheet at 2nd index
>>> work_book.create_sheet(index=2, title=’Third Sheet’)
<Worksheet "Third Sheet">
>>> # getting all the sheets
>>> work_book.sheetnames
['First Sheet', 'Second Sheet', 'Third Sheet']
Sekarang, kami memiliki tiga lembar, dan kami akan menambahkan data ke sel lembar ini.
>>> # Getting First Sheet
>>> sheet_1 = work_book[‘First Sheet’]
>>> # Adding Data to ‘A1’ Cell of First Sheet
>>> sheet_1[‘A1’] = ‘Name’
>>> # Getting Second Sheet
>>> sheet_2 = work_book[‘Second Sheet’]
>>> # Adding Data to ‘A1’ Cell of Second Sheet
>>> sheet_2[‘A1’] = ‘ID’
>>> # Getting Third Sheet
>>> sheet_3 = work_book[‘Third Sheet’]
>>> # Adding Data to ‘A1’ Cell of Third Sheet
>>> sheet_3[‘A1’] = ‘Grades’
>>> # Saving Excel Workbook
>>> work_book.save(‘example.xlsx’)
Membaca Lembar Excel
Modul openpyxl menggunakan atribut nilai sel untuk menyimpan data sel itu. Kita dapat membaca data dalam sel dengan memanggil atribut nilai sel. Sekarang, kami memiliki tiga lembar, dan setiap lembar berisi beberapa data. Kita dapat membaca data dengan menggunakan fungsi berikut di openpyxl:
>>> # importing openpyxl
>>> import openpyxl
>>> # loading workbook
>>> work_book = openpyxl.load_workbook(‘example.xlsx’)
>>> # Getting First Sheet
>>> sheet_1 = work_book[‘First Sheet’]
>>> # Getting Second Sheet
>>> sheet_2 = work_book[‘Second Sheet’]
>>> # Getting Third Sheet
>>> sheet_3 = work_book[‘Third Sheet’]
>>> # printing data from ‘A1’ cell of First Sheet
>>> print(sheet_1[‘A1’].value)
Name
>>> # printing data from ‘A1’ cell of Second Sheet
>>> print(sheet_2[‘A1’].value)
ID
>>> # printing data from ‘A1’ cell of Third Sheet
>>> print(sheet_3[‘A1’].value)
Grades
Mengubah Font dan Warna
Selanjutnya, kami akan menunjukkan cara mengubah font sel dengan menggunakan fungsi Font(). Pertama, impor objek openpyxl.styles. Metode Font() mengambil daftar argumen, termasuk:
- name (string): nama fontnya
- size (int or float): ukuran font
- underline (string): tipe garis bawah
- color (string): warna heksadesimal dari teks
- italic (bool): apakah font dicetak miring
- bold (bool): apakah fontnya dicetak tebal
Untuk menerapkan gaya, pertama-tama kita harus membuat objek dengan meneruskan semua parameter ke metode Font(). Kemudian, kami memilih lembar, dan di dalam lembar, kami memilih sel yang ingin kami terapkan gayanya. Kemudian, kami menerapkan gaya ke sel yang dipilih.
>>> # importing openpyxl
>>> import openpyxl
>>> # importing Font method from openpyxl.styles
>>> from openpyxl.styles import Font
>>> # loading workbook
>>> work_book = openpyxl.load_workbook(‘example.xlsx’)
>>> # Creating style object
>>> style = Font(name=’Consolas’, size=13, bold=True,
... italic=False)
>>> # Selecting Sheet from Workbook
>>> sheet_1 = work_book[‘First Sheet’]
>>> # Selecting the cell we want to add styles
>>> a1 = sheet_1[‘A1’]
>>> # Applying Styles to the cell
>>> a1.font = style
>>> # Saving workbook
>>> work_book.save(‘example.xlsx’)
Menerapkan Batas ke Sel
Kita dapat menerapkan batas ke sel dalam lembar Excel menggunakan metode Border() dan Side() dari modul openpyxl.styles.borders. Kita dapat melewatkan fungsi yang berbeda sebagai parameter ke metode Border(). Berikut ini adalah beberapa fungsi yang diteruskan sebagai parameter ke metode Border() untuk menentukan dimensi batas.
- left: menerapkan batas ke sisi kiri sel
- right: menerapkan batas ke sisi kanan sel
- top: menerapkan batas ke bagian atas sel
- bottom: menerapkan batas ke bagian bawah sel
Fungsi-fungsi ini mengambil atribut gaya sebagai parameter. Atribut style mendefinisikan gaya perbatasan (misalnya, solid, putus-putus). Parameter gaya dapat memiliki salah satu dari nilai berikut.
- double: perbatasan garis ganda
- dashed: batas putus-putus
- thin: batas tipis
- medium: batas sedang
- mediumDashDot: batas putus-putus dan putus-putus dengan bobot sedang
- thick: batas tebal
- dashDot: batas putus-putus dan putus-putus
- hair: batas yang sangat tipis
- dotted: perbatasan putus-putus
Sekarang, kami akan menerapkan berbagai jenis batas ke sel yang berbeda dari spreadsheet kami. Pertama, kami memilih sel, lalu, kami mendefinisikan gaya batas dan menerapkan gaya ini ke sel yang berbeda.
>>> # importing openpyxl
>>> import openpyxl
>>> # importing Border and Side classes
>>> from openpyxl.styles.borders import Border, Side
>>> # loading workbook
>>> work_book = openpyxl.load_workbook(‘example.xlsx’)
>>> # Selecting Sheet
>>> sheet_1 = work_book[‘First Sheet’]
>>> # Selecting different cells from sheet
>>> cell_1 = sheet_1[‘A1’]
>>> cell_2 = sheet_1[‘B2’]
>>> cell_3 = sheet_1[‘C3’]
>>> # Defining different border styles
>>> style_1 = Border(bottom=Side(style=’dotted’))
>>> style_2 = Border(right=Side(style=’thin’))
>>> style_3 = Border(top=Side(style=’dashDot’))
>>> # applying border styles to the cells
>>> cell_1.border = style_1
>>> cell_2.border = style_2
>>> cell_3.border = style_3
>>> # Saving workbook
>>> work_book.save(‘example.xlsx’)
Menyesuaikan Dimensi Baris dan Kolom
Tinggi baris dan lebar kolom dokumen Excel juga dapat disesuaikan menggunakan Python. Modul openpyxl memiliki dua metode bawaan yang dapat digunakan untuk melakukan tindakan ini. Pertama, kami memilih lembar yang ingin kami ubah lebar kolom atau tinggi barisnya. Kemudian, kami menerapkan metode ke baris atau kolom tertentu.
>>> # importing openpyxl
>>> import openpyxl
>>> # loading workbook
>>> work_book = openpyxl.load_workbook(‘example.xlsx’)
>>> # selecting sheet
>>> sheet_1 = work_book[‘First Sheet’]
>>> # changing the height of first row
>>> sheet_1.row_dimensions[1].height = 50
>>> # Saving workbook
>>> work_book.save(‘example.xlsx’)
Demikian pula, kita dapat mengubah lebar kolom menggunakan kode berikut:
>>> # selecting sheet from excel workbook
>>> sheet_2 = work_book[‘Second Sheet’]
>>> # changing the width of A column
>>> sheet_2.column_dimensions[‘A’].width = 50
>>> # Saving workbook
>>> work_book.save(‘example.xlsx’)
Kode di atas akan mengubah tinggi baris pertama menjadi 50 pts dan lebar kolom A menjadi 50 pts.
Menggabungkan dan Memisahkan Sel
Saat bekerja dengan spreadsheet Excel, kita sering kali perlu menggabungkan dan memisahkan sel. Untuk menggabungkan sel dengan Python, fungsi sederhana berdasarkan openpyxl dapat digunakan. Modul openpyxl menawarkan metode merge_cells(), yang dapat digunakan untuk menggabungkan sel di Excel. Sel baru akan mengambil nama sel kiri atas. Misalnya, jika kita ingin menggabungkan sel dari sel A1 ke sel B2, maka sel yang baru terbentuk akan disebut sebagai A1. Untuk menggabungkan sel menggunakan openpyxl, pertama-tama kita pilih sheet, lalu kita terapkan metode merge_cells() ke sheet.
>>> # importing openpyxl module
>>> import openpyxl
>>> # loading workbook
>>> work_book = openpyxl.load_workbook(‘example.xlsx’)
>>> # selecting first sheet from excel workbook
>>> sheet_1 = work_book[‘First Sheet’]
>>> # merging cells from A1 to B2 in Sheet 1
>>> sheet_1.merge_cells(‘A1:B2’)
>>> # saving workbook
>>> work_book.save(‘example.xlsx’)
Demikian pula, metode unmerge_cells() dapat digunakan untuk memisahkan sel dalam spreadsheet Excel. Kode berikut dapat digunakan untuk memisahkan sel:
>>> # selecting sheet from workbook
>>> sheet_1 = work_book[‘First Sheet’]
>>> # unmerging cells from A1 to B2
>>> sheet_1.unmerge_cells(‘A1:B2’)
>>> # saving workbook
>>> work_book.save(‘example.xlsx’)
Kesimpulan
Spreadsheet Excel biasanya digunakan untuk manipulasi data. Namun, tugas seperti itu bisa monoton. Oleh karena itu, dalam kasus seperti itu, pemrograman dapat digunakan untuk mengotomatisasi manipulasi spreadsheet.
Pada artikel ini, kita membahas beberapa fungsi yang berguna dari modul openpyxl Python. Kami menunjukkan cara membuat, membaca, menghapus, dan memodifikasi lembar bentang Excel, cara mengubah gaya, menerapkan font, batas, dan dimensi sel, serta cara menggabungkan dan memisahkan sel. Dengan menerapkan fungsi-fungsi ini, Anda dapat mengotomatiskan banyak tugas manipulasi spreadsheet menggunakan Python.