/Python

Data Science For Beginner | Cara Membaca File Excel Menggunakan Python

Cara Membaca File Excel Menggunakan Python Openpyxl

Sebagai seorang backend engineer, ataupun data science, tentunya kita dituntut untuk bisa mengolah sebuah data mentah atau biasa disebut raw data, karena dengan data-data tersebut kita bisa melakukan banyak analisa.

Jika kita bekerja pada sebuah perusahaan, data-data mentah ini biasanya tersimpan dalam Excel .xlsx dan CSV .csv.

Pada tutorial kali ini, kita akan belajar tentang bagaimana membaca sebuah data dari Excel menggunakan python.

Apa yang akan kita pelajar?

  • Manipulasi data pada Excel
  • Mengekstrak sebuah data / informasi dari Excel
  • Membuat sebuah data sederhana hingga data komplek di Excel menggunakan python

Table of contents

Tutorial kali ini akan lebih mudah dipahami jika kita telah mengetahui dasar-dasar python seperti dict dan list, juga pengetahuan dasar oop (Object Oriented Programming)

Study Case

➡️ Mengimport data dari Excel ke dalam Database

  • Seperti dalam sebuah pekerjaan, kita diberi sebuah tanggung jawab untuk mengimport sebuah raw data dari file Excel dengan jumlah ratusan bahkan ribuan ke dalam sebuah database perusahaan.

➡️ Mengeksport data dari Database ke dalam sebuah file Excel

  • Kemudian kita diberi sebuah tanggung jawab untuk melakukan export data dari database ke dalam sebuah file Excel yang berjumlah ratusan rows.

➡️ Menambahkan sebuah data ke dalam file Excel

  • Menambahkan sebuah data (row / collumn) baru ke dalam data Excel tersebut dengan jumlah ratusan.

Lalu bagaimana jika kita melakukannya secara manual atau bahkan rumus excel?

Manual? sepertinya sangat impossible bukan? sedangkan jika kita menggunakan rumus Excel, mungkin bisa juga menjadi bahan pertimbangan jika data-data tersebut hanya berjumlah puluhan atau di bawah 500 row / collumn.

Akan tetapi pada study case kali ini kita akan menggunakan cara seorang engineer, yang mana kita diwajibkan untuk bisa menghandle ratusan bahkan ribuan rows dalam satu file.

Oleh karenanya, kita akan mencoba menggunakan cara tersebut.

Now let’s get into it!

Catatan: pastikan kita telah menginstall latest version python dan telah menyiapkan Virtual Environment untuk project tersebut.

Install Openpyxl

Install openpyxl melalui terminal:

$ pip install openpyxl

Tunggu hingga proses selesai, dan selanjutnya kita akan membuat sebuah workbook sederhana menggunakan python, buatlah file bernama excel.py.

$ vim excel.py

Note: Kita bisa menggunakan text editor apapun, contoh di atas ditulis menggunakan VIM.

from openpyxl import Workbook

workbook = Workbook()
sheet = workbook.active

sheet['A1'] = "noTnoob"
sheet['B1'] = "Dev"

workbook.save(filename="latihan.xlsx")

Lalu jalankan file python excel.py tersebut, maka dalam folder yang sama, kita akan mendapatkan sebuah file excel baru bernama latihan.xlsx.

Jika kita buka file excel tersebut, maka di dalamnya akan berisi dua kata, yaitu “notnoob” dan “Dev” pada kolom A dan B.

Oh Hell yeah dude, and it’s working!!! 🤘

Mengimport file Excel menggunakan openpyxl

Setelah percobaan pertama berhasil, langkah selanjutnya adalah membaca sebuah file excel dengan kita siapkan sebelumnya.

cara membaca file excel menggunakan python Di dalam file exel tersebut terdapat 100 rows.

Langakah selanjutnya adalah, buka terminal / cmd kita. Masuk ke dalam python shell untuk langsung mengeksekusi file di atas:

❯ python                                                                    
Python 3.8.2 (default, Apr 27 2020, 15:53:34) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Let’s do it!

>>> from openpyxl import load_workbook

>>> data = load_workbook(filename="100_data_excel.xlsx")

>>> data.sheetnames
['Sheet1']

>>> sheet = data.active

>>> sheet
<Worksheet "Sheet1">

>>> sheet.title
'Sheet1'
>>>
  • Pada baris kode pertama di atas, kita mengimpoert module load_workbook
  • Baris kode ke dua, data = load_workbook(filename="100_data_excel.xlsx") kita memanggil file excel dalam variable data
  • Baris ke tiga, data.sheetnames, kita membaca sheet apa sajakah yang ada di dalam file excel yang sebelumnya telah ditampung pada variable data
  • Baris ke empat dan kelima, sheet = data.active untuk memilih sheet pertama yang ada, dan sheet akan akan menunjukkan “sheet 1” ketika kita memanggil variable sheet.

Pada tutorial membaca file excel menggunakan python ini, kita akan banyak menggunakan metode seperti di atas untuk membaca sebuah file excel.


Selanjutnya, kita dapat dengan mudah membaca data apa saja yang ada di dalam file excel tersebut menggunakan perintah:

>>> sheet["B1"]
<Cell 'Sheet1'.B1>

>>> sheet["B1"].value
'First Name'

>>> sheet["E5"].value
'United States'
>>> 
  • Baris pertama: kita ingin melakukan pengecekan kolom B1 (kolom B baris ke 1)
  • Baris ke dua: kita ingin membaca value yang ada di kolom B1 sheet["B1"].value yang berisi “First Name”
  • Pada baris ke tiga: kita membaca isi dari E5 (kolom E baris ke 5), dan mendapatkan value “United States”
  • .value pada baris kode di atas adalah jika kita ingin mendapatkan nilai / data dari kolom yang kita kehendaki. Tanpa .value kita akan mendapatkan hasil seperti pada baris pertama di atas.

Kita juga dapat menggunakan .cell() untuk mendapatkan index notation.

Contoh:

>>> sheet.cell(row=30, column=4)
<Cell 'Sheet1'.D30>

>>> sheet.cell(row=30, column=4).value
'Male'

Membaca data Excel menggunakan openpyxl

Selanjutnya kita akan mencoba melakukan iterasi / iteration / pengulangan pada file excel sebelumnya untuk mendapatkan value yang lebih spesifik.

Menggunakan metode list slicing:

>>> sheet["B3:C4"]
((<Cell 'Sheet1'.B3>, <Cell 'Sheet1'.C3>), (<Cell 'Sheet1'.B4>, <Cell 'Sheet1'.C4>))

Pada contoh di atas, melakukan slice menggunakan list pada python untuk mendapatkan membaca dimulai dari kolom B row ke 3 hingga kolom C row ke 4.

Kita juga bisa melakukan pengulangan / iterasi / loop or whatever you called it menggunakan:

>>> sheet["A"]

(<Cell 'Sheet1'.A1>, 
 <Cell 'Sheet1'.A2>, 
 <Cell 'Sheet1'.A3>, 
 <Cell 'Sheet1'.A4>, 
 <Cell 'Sheet1'.A5>, 
 ...
 <Cell 'Sheet1'.A98>, 
 <Cell 'Sheet1'.A99>, 
 <Cell 'Sheet1'.A100>, 
 <Cell 'Sheet1'.A101>)

Perintah di atas akan menampilkan semua rows yang ada pada kolom A.

>>> sheet["A:B"]
((<Cell 'Sheet1'.A1>,
  <Cell 'Sheet1'.A2>,
  ...
  <Cell 'Sheet1'.A99>,
  <Cell 'Sheet1'.A100>),
 (<Cell 'Sheet1'.B1>,
  <Cell 'Sheet1'.B2>,
  ...
  <Cell 'Sheet1'.B99>,
  <Cell 'Sheet1'.B100>))

Perintah di bawah ini akan menampilkan semua rows yang ada pada kolom A dan B.

>>> sheet[3]

(<Cell 'Sheet1'.A3>, 
 <Cell 'Sheet1'.B3>, 
 <Cell 'Sheet1'.C3>, 
 <Cell 'Sheet1'.D3>, 
 <Cell 'Sheet1'.E3>, 
 <Cell 'Sheet1'.F3>, 
 <Cell 'Sheet1'.G3>, 
 <Cell 'Sheet1'.H3>)

Perintah di atas akan menampilkan semua data pada row ke 3

>>> sheet[3:5]

((<Cell 'Sheet1'.A3>, 
  <Cell 'Sheet1'.B3>, 
  <Cell 'Sheet1'.C3>, 
  <Cell 'Sheet1'.D3>, 
  ...
  <Cell 'Sheet1'.F5>, 
  <Cell 'Sheet1'.G5>, 
  <Cell 'Sheet1'.H5>))

Baris kode di atas dapat kita gunakan untuk mendapatkan row yang kita inginkan, dimulai dari row ke 3 hingga row ke 5

Jika kita perhatikan kembali, maka pemrosesan data-data di atas melibatkan list dan tuple pada python.

Oleh karenanya, memahami penggunaan list, seperti list slicing dsb, sangatlah dianjurkan agar dapat dengan mudah memahami tutorial ini.


Kita juga dapat menggunakan default python generator untuk mendapatkan data pada file excel seperti:

  • iter_rows()
  • iter_cols()

Contoh penggunaa digabungkan dengan loop:

rows

>>> for row in sheet.iter_rows(min_row=1,
                               max_row=2,
                               min_col=1, 
                               max_col=3):               
        print(row)
...
... 

(<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>)
(<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>)
  • Seperti yang kita lihat, pada contoh baris kode di atas kita melakukan sebuah perulangan pada row menggunakan iter_rows dan mendapatkan hasil data tuple yang berisikan row pada setiap element yang kita pilih.
>>> for column in sheet.iter_cols(min_row=1, 
                                  max_row=2, 
                                  min_col=1, 
                                  max_col=3):
...     print(column)
... 
(<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.A2>)
(<Cell 'Sheet1'.B1>, <Cell 'Sheet1'.B2>)
(<Cell 'Sheet1'.C1>, <Cell 'Sheet1'.C2>)
  • Dan selanjutnya, kita menggunakan iter_cols untuk melakukan perulangan pada kolom-kolom excel dan mendapatkan data tuple yang berisi columns sesuai yang telah kita pilih.

Kita juga dapat menambahkan sebuah argumen boolean yaitu values_only menjadi True untuk mendapatkan value dari file excel tersebut, bukan sebuah object Cell seperti yang kita gunakan di atas.

Contoh:

>>> for value in sheet.iter_rows(min_row=1, 
                                 max_row=2, 
                                 min_col=1, 
                                 max_col=3, 
                                 values_only=True):
...     print(value)
... 
(0, 'First Name', 'Last Name')
(1, 'Dulce', 'Abril')

Hasil yang kita dapat pun adalah sebuah value dari file excel tersebut, bukan sebuah object seperti sebelumnya.

Agar tutorial ini tidak terlalu panjang, maka kita akan melanjutkan part 2 dari tutorial ini dengan lebih fokus tentang bagaimana cara memanipulasi data excel menggunakan python.



Tags: #python


Next: Manipulasi Data Excel Menggunakan Python


Subscribe to noTnoob Dev

Get the latest posts delivered right to your inbox

iColdPlayer

iColdPlayer

Backend Developer | Python, Django, Linux & Rails

Read More