Skip to content
22 Desember 2010 / Jeffrey Hermanto Halimsetiawan

Membaca Data dari File Excel Berformat xls dan xlsx dengan Excel Data Reader


Salah satu varian Microsoft Office yang populer dan banyak digunakan adalah Microsoft Office Excel. File yang umumnya dihasilkan oleh Microsoft Office Excel 2003 adalah sebuah file berekstensi .xls, sedangkan file yang dihasilkan oleh Microsoft Office Excel 2007 adalah sebuah file berekstensi xlsx. Seiring dengan perkembangan Microsoft Office yang telah mencapai versi Microsoft Office 2010, banyak perusahaan ataupun orang yang telah memigrasikan berkas-berkas yang dihasilkan oleh sistem mereka dari binary format (xls) menjadi Office Open XML format (xlsx). Tentunya dalam proses migrasi ini membutuhkan pengujian terhadap validitas dan kesesuain data yang dihasilkan pada file xls dan xlsx tersebut. Kebanyakan library yang beredar hanya memfasilitasi pembacaan Excel File beformat xls saja ataupun xlsx saja, salah satu library yang memudahkan pengguna untuk membaca data pada kedua ekstensi file serta membandingkan data yang tersimpan di kedua file tersebut adalah Excel Data Reader.

Berikut adalah langkah-langkah sederhana untuk membuat sebuah reader sederhana ini:

  1. Pada Microsoft Visual Studio 2010, buat New Project dengan WPF Application template. image
  2. Pilih Add Reference dan tambahkan library ExcelDataReader, yaitu: Excel.dll dan ICSharpCode.SharpZipLib.dll ke dalam project. image
  3. Tambahkan dua buah control DataGrid yang diberi nama dgFirst dan dgSecond pada MainWindow. image
  4. Definisikan sebuah static method GetDataFromXlsxFile untuk memperoleh DataSet dari suatu file .xlsx.
    ///
    /// This method is used to get data from Xlsx file.
    /// Author : Jeffrey Hermanto Halimsetiawan
    ///
    /// filepath of .xls file
    /// Data Table which keep .xlsx data
    private static DataSet GetDataFromXlsxFile(string filepath)
    {
        string filePathXlsx = filepath;
        FileStream streamXlsx = File.Open(filePathXlsx, FileMode.Open, FileAccess.Read);
        IExcelDataReader excelReaderXlsx = ExcelReaderFactory.CreateOpenXmlReader(streamXlsx);
        DataSet ds = excelReaderXlsx.AsDataSet();
        excelReaderXlsx.Close();
        return ds;
    }
    
  5. Definisikan sebuah static method GetDataFromXlsFile untuk memperoleh DataSet dari suatu file .xls.
    ///
    /// This method is used to get data from Xls file
    /// Author : Jeffrey Hermanto Halimsetiawan
    ///
    /// filepath of .xls file
    /// Data Table which keep .xls data
    private static DataSet GetDataFromXlsFile(string filepath)
    {
        string filePathXls = filepath;
        FileStream streamXls = File.Open(filePathXls, FileMode.Open, FileAccess.Read);
        IExcelDataReader excelReaderXls = ExcelReaderFactory.CreateBinaryReader(streamXls);
        DataSet ds = excelReaderXls.AsDataSet();
        excelReaderXls.Close();
        return ds;
    }
    
  6. Tentukan DataContext dari kedua control DataGrid yang telah ada untuk mengambil data dari GetDataFromXlsxFile dan GetDataFromXlsFile pada constructor MainWindow.
    public MainWindow()
    {
        InitializeComponent();
        DataSet ds = GetDataFromXlsxFile("DataTest.xlsx");
        dgFirst.DataContext = ds.Tables[0].DefaultView;
        DataSet dsXls = GetDataFromXlsFile("DataTest.xls");
        dgSecond.DataContext = dsXls.Tables[0].DefaultView;
    }
    

Sementara itu, siapkan kedua file Excel yang akan dicoba untuk dibaca data yang terdapat di dalamnya dan beri nama “DataTest.xlsx” dan “DataTest.xls”. Berikut adalah sampel data yang terdapat dalam kedua file tersebut: image Hasil uji coba program tersebut seperti yang terlihat pada gambar di bawah ini: image Selamat mencoba dan semoga bermanfaat😀

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: