Senin, 12 November 2012

Convert .XLS ke .CSV Untuk Database


Sekedar sharing dan juga sebagai catatan agar kelak jika dibutuhkan tinggal buka posting ini kapan saja. Kali ini tentang cara merubah format sebuah file data dari format Ms.Excel ke format yang dapat digunakan pada aplikasi database. Sejauh sepengetahuan saya, umumnya aplikasi database baik di PC dan Android, memerlukan raw data atau data mentah berupa file teks dengan format .CSV. Tujuannya adalah agar data-data tersebut dapat langsung di-import dan dikenali sebagai data yang valid dan readable oleh sebuah aplikasi Database. Kelihatannya mudah, karena fasilitas untuk menyimpan data ke dalam format .CSV ini sudah tersedia oleh Ms.Excel. Namun demikian, format yang dibuat oleh Ms.Excel ternyata tidak dapat dikenali oleh rata-rata aplikasi database.

Banyak referensi di internet yang dapat kita peroleh mengenai bentuk format .CSV yang dapat digunakan sebagai raw data oleh aplikasi database. Yang saya tahu, adalah .CSV dengan menggunakan double quote delimiter (") sebagai pemisah antara jenis data. Contoh:
"Name","Kota","Phone"
"Sunaryono","JAKARTA","+62815815815"
Namun dari sekian banyak referensi yang saya dapat dari Internet, sejauh ini saya baru menemukan satu referensi yang saya pikir sangat akurat memberikan cara untuk bisa mengkonversi file .xls ke format .CSV yang saya inginkan. Cara ini menggunakan perintah Macro yang mungkin sedikit membingungkan untuk para pemula, termasuk saya. Namun demikian, kita tidak perlu khawatir. Walaupun caranya sedikit membutuhkan usaha, namun menurut saya hasilnya sangat memuaskan dan kita tidak perlu harus mengerti Macro. Ikuti saja  langkah-langkah berikut ini,

1. Buka file .xls yang berisi tabel data-data yang akan dikonversi.
2. Tekan tombol ALT dan F11. Ini untuk mengaktifkan Visual Basic Editor.
3. Pilih menu Insert - Module untuk membuka jendela module.


4. Salin makro di bawah ini dan paste di jendela module.

Sub CSVFile() 

Dim SrcRg As Range 
Dim CurrRow As Range 
Dim CurrCell As Range 
Dim CurrTextStr As String 
Dim ListSep As String 
Dim FName As Variant 
FName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv") 

ListSep = Application.International(xlListSeparator) 
 If Selection.Cells.Count > 1 Then Set SrcRg = Selection Else
  Set SrcRg = ActiveSheet.UsedRange
 End If
Open FName For Output As #1 
For Each CurrRow In SrcRg.Rows 
 CurrTextStr = ìî 
For Each CurrCell In CurrRow.Cells
 CurrTextStr = CurrTextStr & """" & CurrCell.Value & """" & ListSep 
Next 
While Right(CurrTextStr, 1) = ListSep
 CurrTextStr = Left(CurrTextStr, Len(CurrTextStr) - 1) 
Wend 
Print #1, CurrTextStr 
Next Close #1 
End Sub


5. Kemudian tutup jendela module dan jendela Visual Basic Editor.
6. Dari jendela kerja Ms. Excel tekan tombol ALT dan F8.
7. Akan terbuka jendela Macro dan terdapat pilihan CSVFile.
8. Pilih CSVFile dan klik Run.


9. Jendela Save As akan terbuka, beri nama file maka data akan tersimpan sebagai file .CSV

Sekarang kita telah memiliki file .CSV dengan Double Quote delimiter yang bisa digunakan di berbagai aplikasi database.

Artikel asli cara konversi ke file .CSV di atas dapat dilihat pada link ini

2 komentar: