Monday, September 22, 2025

Membuat Aplikasi Spreadsheet Sederhana dengan Lazarus dan fpspreadsheet


Membuat Aplikasi Spreadsheet Sederhana dengan Lazarus dan fpspreadsheet

Lazarus adalah salah satu IDE (Integrated Development Environment) yang kuat dan gratis, yang memungkinkan pengembang untuk membuat aplikasi berbasis Pascal. Dalam artikel ini, kita akan membahas cara membuat aplikasi spreadsheet sederhana dengan menggunakan Lazarus dan pustaka fpspreadsheet, yang memungkinkan kita untuk membaca, menulis, dan mengedit file spreadsheet berbagai format seperti Excel, CSV, dan lainnya.

Aplikasi yang akan kita buat memungkinkan pengguna untuk membuka file spreadsheet, mengeditnya, dan menyimpannya kembali dalam format yang berbeda. Di bawah ini, kita akan menguraikan langkah-langkah implementasi dalam source code Lazarus yang sudah disediakan.

Persiapan Awal

Sebelum memulai, pastikan Anda sudah menginstal Lazarus IDE dan pustaka fpspreadsheet. Pustaka fpspreadsheet memungkinkan kita untuk bekerja dengan berbagai format file spreadsheet secara fleksibel. Jika pustaka ini belum terpasang, Anda bisa mengunduhnya melalui Paket Manajer Lazarus atau menggunakan perintah berikut:

sudo apt install libfpspreadsheet

Screenshot form yang dibuat :

ScreenShot Form

Komponen yang dipakai



Penjelasan Source Code

Berikut ini adalah penjelasan bagian-bagian utama dari kode sumber aplikasi spreadsheet sederhana yang telah disiapkan.

Unit dan Import

Pada bagian awal, kita mendeklarasikan unit-unit yang diperlukan, seperti fpspreadsheet, fpspreadsheetctrls, dan fpspreadsheetgrid, yang akan membantu dalam bekerja dengan spreadsheet. Berikut adalah deklarasi unit yang digunakan:

uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, fpstypes, fpspreadsheet, fpspreadsheetctrls,fpspreadsheetgrid, fpsallformats, fpcanvas, lazutf8, fpsutils, fpsReaderWriter;
  • fpspreadsheet: Pustaka utama untuk memanipulasi file spreadsheet.

  • fpspreadsheetctrls dan fpspreadsheetgrid: Digunakan untuk menampilkan grid spreadsheet dalam aplikasi Lazarus.

  • fpsallformats: Mengizinkan aplikasi membaca dan menulis berbagai format spreadsheet seperti XLS, XLSX, CSV, dan lainnya.

Desain Form dan Komponen

Komponen yang digunakan dalam aplikasi ini meliputi:

  • Button1 dan Button2: Digunakan untuk membuka dan menyimpan file spreadsheet.

  • OpenDialog dan SaveDialog1: Digunakan untuk memilih file yang akan dibuka atau disimpan.

  • WorksheetGrid: Komponen utama untuk menampilkan data spreadsheet dalam grid yang dapat diedit.

Selain itu, ada objek sWorkbookSource1 dan sWorkbookTabControl1, yang berfungsi untuk memuat dan menampilkan data spreadsheet.

Fungsi LoadFile

Fungsi LoadFile bertanggung jawab untuk membaca file spreadsheet yang dipilih pengguna dan memuatnya ke dalam aplikasi. Fungsi ini menerima dua parameter: nama file dan indeks filter dari dialog pemilih file (untuk menentukan format file yang akan dibaca).

procedure TForm1.LoadFile(const AFileName: String; index : byte); var wb: TsWorkbook; begin wb := TsWorkbook.Create; case index of 1: wb.ReadFromFile(AFileName); // Semua jenis file spreadsheet 2: wb.ReadFromFile(AFileName); // Excel secara otomatis 3: wb.ReadFromFile(AFileName, sfOOXML); // Excel 2007+ 4: wb.ReadFromFile(AFileName, sfExcel8); // Excel 97-2003 5: wb.ReadFromFile(AFileName, sfExcel5); // Excel 5.0 6: wb.ReadFromFile(AFileName, sfExcel2); // Excel 2.1 7: wb.ReadFromFile(AFileName, sfOpenDocument); // LibreOffice 8: wb.ReadFromFile(AFileName, sfCSV); // File teks CSV else wb.Free; MessageDlg('File format not implemented.', mtError, [mbOk], 0); exit; end; sWorkbookSource1.LoadFromWorkbook(wb); end;

Dalam fungsi ini, objek TsWorkbook digunakan untuk memuat file spreadsheet berdasarkan format yang dipilih. Pengguna dapat memilih dari berbagai format file spreadsheet, dan aplikasi akan otomatis mendeteksi serta memproses file tersebut.

Fungsi SaveFile

Fungsi SaveFile digunakan untuk menyimpan data spreadsheet yang telah dimodifikasi ke dalam file baru dengan format yang dipilih oleh pengguna. Format yang dapat dipilih meliputi berbagai format Excel, OpenDocument, CSV, dan lainnya.

procedure TForm1.SaveFile(const AFileName: String; index : byte); var fmt: TsSpreadsheetFormat; begin Screen.Cursor := crHourglass; try case index of 1: fmt := sfOOXML; // Format Excel 2007+ 2: fmt := sfExcel8; // Format Excel 97-2003 3: fmt := sfExcel5; // Format Excel 5.0 4: fmt := sfExcel2; // Format Excel 2.1 5: fmt := sfOpenDocument; // Format OpenDocument 6: fmt := sfCSV; // Format CSV 7: fmt := sfWikiTable_WikiMedia; // Format WikiTable end; sWorkbookSource1.SaveToSpreadsheetFile(AFileName, fmt); finally Screen.Cursor := crDefault; end; end;

Fungsi ini mengubah format file berdasarkan pilihan pengguna dan menyimpannya menggunakan sWorkbookSource1.SaveToSpreadsheetFile.

saya menambahkan ini di file form lazarus untuk setting filternya, ya karena malas ketik jadi bagus copy paste aja

  object OpenDialog: TOpenDialog

    Filter = 'All spreadsheet files|*.xls;*.xlsx;*.ods;*.csv|All Excel files (*.xls, *.xlsx)|*.xls;*.xlsx|Excel XML spreadsheets (*.xlsx)|*.xlsx|Excel XP/2003 XML spreadsheets (*.xml)|*.xml|Excel 97-2003 spreadsheets (*.xls)|*.xls|Excel 5 spreadsheets (*.xls)|*.xls|Excel 2.1 spreadsheets (*.xls)|*.xls|LibreOffice/OpenOffice spreadsheets (*.ods)|*.ods|HTML files (*.html; *.htm)|*.html;*.htm|Comma-separated text files (*.csv; *.txt)|*.csv;*.txt'

    Left = 664

    Top = 93

  end

  object SaveDialog1: TSaveDialog

    Filter = 'Excel XML spreadsheet (*.xlsx)|*.xlsx|Excel 97-2003 spreadsheets (*.xls)|*.xls|Excel 5 spreadsheet (*.xls)|*.xls|Excel 2.1 spreadsheets (*.xls)|*.xls|LibreOffice/OpenOffice spreadsheet (*.ods)|*.ods|Comma-delimited files (*.csv)|*.csv|WikiTable (WikiMedia-Format, *.wikitable_wikimedia)|*.wikitable_wikimedia'

    Left = 736

    Top = 93 

bisa dilihat juga di video ketika saya copy pastenya

Event Handling: Button1Click dan Button2Click

Event handler untuk dua tombol utama:

  • Button1Click: Membuka file menggunakan OpenDialog dan memanggil fungsi LoadFile.

  • Button2Click: Menyimpan file menggunakan SaveDialog1 dan memanggil fungsi SaveFile.

procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog.Execute then LoadFile(OpenDialog.FileName, OpenDialog.FilterIndex); WorksheetGrid.SetFocus; WorksheetGrid.Row := 1; WorksheetGrid.Col := 1; end; procedure TForm1.Button2Click(Sender: TObject); begin if SaveDialog1.Execute then SaveFile(SaveDialog1.FileName, SaveDialog1.FilterIndex); end;

Pada Button1Click, file yang dipilih akan dimuat ke dalam worksheet grid, dan grid akan difokuskan ke sel pertama. Sedangkan pada Button2Click, aplikasi akan menyimpan file dengan format yang dipilih oleh pengguna.

Penutupan

Dengan langkah-langkah di atas, Anda telah membuat aplikasi spreadsheet sederhana yang dapat membuka dan menyimpan file dalam berbagai format menggunakan Lazarus dan pustaka fpspreadsheet. Aplikasi ini dapat menjadi dasar yang baik untuk pengembangan lebih lanjut, seperti penambahan fitur pengeditan sel, filter data, dan sebagainya.

Pustaka fpspreadsheet menawarkan banyak kemampuan untuk bekerja dengan data spreadsheet, dan dengan Lazarus sebagai IDE, Anda dapat dengan mudah membuat aplikasi desktop yang kuat dan fleksibel.


SourceCode bisa di download disini





No comments:

Post a Comment