top of page

Excel'den Arff Formatina Donusumu Saglayan Program

  • Writer: Sevdanur GENC
    Sevdanur GENC
  • Oct 11, 2011
  • 4 min read

Veri Madenciligi programi Weka'da Excel dosyamizda ki tum bulunan verileri, arff (attribute relation file format) formatina cevirip, program icerisinde inceleyebilmemiz icin bir donusturme programi gerceklestiricez... NOT : Bu program Suleyman Demirel Universite'sinde Bilgisayar Muhendisligi sinifi Veri Madenciligi dersi icin gelistirmis oldugum bir programdir... Programimin tam hali asagidaki gibidir...

Programin Yapim asamalari ; Oncelikle sistemden jFileChooser yardimi ile .Xls uzantili excel dosyamizi yukleriz. Excel dosyamizi yukledikten sonra icerisindeki sayfalarin isimlerini ve de her sayfadaki tum verileri yuklettiriyoruz. Tablolarin alanlarini baska bir yere aktararak, arff ye donusturmek icin yapmamiz gereken degiskenleri tanimlattiriyoruz. Hemen ardindan arff dosya icerigine donusturuyoruz, @relation,  @attribute ve @data gibi ifadelere donusturmus oluyoruz. En son asamada ise; uzantisi .Arff olacak sekilde sistemimize dosyayi kaydettiriyoruz...   .Xls dosyamizi okutturmamizi saglayan buton'un click olayinda ki komutlar soyledir ;

        Verileri aktardigimiz buton'un click olayinda ki komutlar soyledir ;

                                        Ekle Buton'unun click olayinda bulunan kodlar soyledir ;

      .Arff'ye donustur buton'unun click olayinda bulunan kodlar ise ;

Programin Tum Kodlari ise Asagidadir ;

package converttoarff; import java.io.*; import java.io.File; import jxl.*; import java.util.Date; import javax.swing.JOptionPane; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Locale; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl.WorkbookSettings; import jxl.read.biff.BiffException; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.util.HashMap; import java.util.Iterator; import java.util.Set; import java.util.Map; public class ConvertToArffView extends FrameView { public ConvertToArffView(SingleFrameApplication app) { private void button5ActionPerformed(java.awt.event.ActionEvent evt) { String geciciveri=""; String sutunismial=""; String listemelekicinverial=""; String realveriyicekme=""; list4.clear(); list4.add("@relation " + textField3.getText() ); list4.add("               "); ry { Workbook kitap=Workbook.getWorkbook(new File(textField1.getText().toString())); Sheet sayfa=kitap.getSheet(textField2.getText().toString()); for(int q=0; q<list3.getItemCount(); q++) { HashMap<String, Integer> hm = new HashMap<String, Integer>(); sutunismial=list3.getItem(q).toString(); System.out.println(sutunismial); geciciveri=sutunismial.substring(0,sutunismial.length()-4); System.out.println(geciciveri); realveriyicekme = sutunismial.substring(sutunismial.length()-4,sutunismial.length()); System.out.println(realveriyicekme); if(!(realveriyicekme.equals("|R|0"))) { for(int u=0; u<sayfa.getColumns(); u++) { if(geciciveri.equals(sayfa.getCell(u,0).getContents().toString())) { System.out.println("siralamak icin hashmap'e aktariyorum"); for(int c=0; c<sayfa.getColumns(); c++) { if(geciciveri.equals(sayfa.getCell(c,0).getContents().toString())) { for (int k = 1; k < sayfa.getRows(); k++) { System.out.print(sayfa.getCell(c,k).getContents() + ","); hm.put(sayfa.getCell(c,k).getContents(),k); } } } System.out.println(""); Set set = hm.entrySet(); Iterator m = set.iterator(); System.out.println("siralanmis hallerini yazdiriyorum"); while(m.hasNext()) { Map.Entry me = (Map.Entry)m.next(); listemelekicinverial = listemelekicinverial + me.getKey() + ","; } listemelekicinverial = listemelekicinverial.substring(0, listemelekicinverial.length()-1);               list4.add("@attribute " + geciciveri + " {" + listemelekicinverial + "}"); } } } else { list4.add("@attribute " + geciciveri + " real"); } listemelekicinverial=""; geciciveri=""; sutunismial=""; } kitap.close(); } catch (IOException e) { e.printStackTrace(); } catch (BiffException e) { e.printStackTrace(); } list4.add("                     "); list4.add("@data"); for(int j=0; j<list1.getItemCount(); j++) { list4.add(list1.getItem(j).toString()); } } private void button3ActionPerformed(java.awt.event.ActionEvent evt) { if(jComboBox1.getSelectedIndex()==1) { list3.add(list2.getSelectedItem().toString() + "|S|0" ); } if(jComboBox1.getSelectedIndex()==2) { list3.add(list2.getSelectedItem().toString() + "|R|0" ); } } private void button2ActionPerformed(java.awt.event.ActionEvent evt) { list1.clear(); list2.clear(); list3.clear(); list4.clear(); Cell rowData[] = null; int rowCount = '0'; int columnCount = '0'; String veriler; int toplamsheetsayisi = 0; try { Workbook kitap=Workbook.getWorkbook(new File(textField1.getText().toString())); toplamsheetsayisi = kitap.getNumberOfSheets(); label1.setText("Bulunan Sheet Sayisi " + toplamsheetsayisi + ", Su an ki Sheet Name'iniz..."); jComboBox2.removeAllItems(); jComboBox2.addItem("Hangi Sheet'te Calismak Istiyorsunuz?"); if(toplamsheetsayisi > 0) { for(int j=0; j<toplamsheetsayisi ;j++) { jComboBox2.addItem(kitap.getSheet(j).getName().toString()); } } Sheet sayfa=kitap.getSheet(0); textField2.setText(kitap.getSheet(0).getName()); columnCount = sayfa.getColumns(); for (int i = 0; i < columnCount; i++) { list2.add(sayfa.getCell(i, 0).getContents()); } rowCount = sayfa.getRows(); columnCount = sayfa.getColumns(); for (int i = 1; i < rowCount; i++) { rowData = sayfa.getRow(i); veriler=""; for (int j =0; j < columnCount; j++) { veriler = veriler + rowData

.getContents()+","; } veriler = veriler.substring(0, veriler.length()-1); list1.add(veriler.toString()); } kitap.close(); } catch (IOException e) { e.printStackTrace(); } catch (BiffException e) { e.printStackTrace(); } textField3.setText(textField2.getText()); } private void button1ActionPerformed(java.awt.event.ActionEvent evt) { jFileChooser1.showOpenDialog(label1); textField1.setText(jFileChooser1.getSelectedFile().toString()); } private void button4ActionPerformed(java.awt.event.ActionEvent evt) { list3.remove(list3.getSelectedIndex()); } private void button6ActionPerformed(java.awt.event.ActionEvent evt) { Writer fw = null; try{ fw = new FileWriter("c:/" + textField3.getText().toString() + ".arff"); for(int i=0; i<list4.getItemCount(); i++) { fw.write(list4.getItem(i).toString() + "\n"); } } catch(IOException e) { System.err.println("Dosya olusturulamadi"); } finally { if(fw !=null) try{ fw.close(); }catch(IOException e){ } } } private void button7ActionPerformed(java.awt.event.ActionEvent evt) { textField2.setText(jComboBox2.getModel().getSelectedItem().toString()); textField3.setText(jComboBox2.getModel().getSelectedItem().toString()); list1.clear(); list2.clear(); list3.clear(); list4.clear(); Cell rowData[] = null; int rowCount = '0'; int columnCount = '0'; String veriler; int toplamsheetsayisi = 0; try { Workbook kitap=Workbook.getWorkbook(new File(textField1.getText().toString())); Sheet sayfa=kitap.getSheet(jComboBox2.getSelectedItem().toString()); columnCount = sayfa.getColumns(); for (int i = 0; i < columnCount; i++) { list2.add(sayfa.getCell(i, 0).getContents()); } rowCount = sayfa.getRows(); columnCount = sayfa.getColumns(); for (int i = 1; i < rowCount; i++) { rowData = sayfa.getRow(i); veriler=""; for (int j =0; j < columnCount; j++) { veriler = veriler + rowData

.getContents()+","; } list1.add(veriler.toString()); } kitap.close(); } catch (IOException e) { e.printStackTrace(); } catch (BiffException e) { e.printStackTrace(); } textField3.setText(textField2.getText()); } private void button8ActionPerformed(java.awt.event.ActionEvent evt) { Cell rowData[] = null; int rowCount = '0'; int columnCount = '0'; String veriler; int toplamsheetsayisi = 0; String gelendegisken=""    ; String geciciveri=""; int sutun_say='0'; String sutunismial=""; try { Workbook kitap=Workbook.getWorkbook(new File(textField1.getText().toString())); Sheet sayfa=kitap.getSheet(jComboBox2.getSelectedItem().toString()); HashMap<String, Integer> hm = new HashMap<String, Integer>(); for(int q=0; q<list3.getItemCount(); q++) { sutunismial=list3.getItem(q).toString(); System.out.println(sutunismial); geciciveri=sutunismial.substring(0,sutunismial.length()-4); System.out.println(geciciveri); for(int u=0; u<sayfa.getColumns(); u++) { if(geciciveri.equals(sayfa.getCell(u,0).getContents().toString())) { System.out.println("siralamak icin hashmap'e aktariyorum"); for(int c=0; c<sayfa.getColumns(); c++) { if(geciciveri.equals(sayfa.getCell(c,0).getContents().toString())) { for (int k = 1; k < sayfa.getRows(); k++) { System.out.print(sayfa.getCell(c,k).getContents() + ","); hm.put(sayfa.getCell(c,k).getContents(),k); } } } System.out.println(""); Set set = hm.entrySet(); Iterator i = set.iterator(); System.out.println("siralanmis hallerini yazdiriyorum"); while(i.hasNext()) { Map.Entry me = (Map.Entry)i.next(); System.out.print(me.getKey() + ","); } } } } kitap.close(); } catch (IOException e) { e.printStackTrace(); } catch (BiffException e) { e.printStackTrace(); } } }  

Recent Posts

See All
Ado.Net Entity Framework Ogreniyorum Serisi 00

Ado.Net Entity Framework (EF) verileri ile etkilesim uygulamalari gelistirmek icin kullanilan Ado.Net nesne iliskisel modelleme yazilimi olarak iliskisel veritabani semalarini ve nesneler arasinda ki

 
 
 
LINQ Ogreniyorum Serisi 05

Linq To Sql’de tablolarimizdaki verileri silebilmemiz icin; DataContext icerisinde ki DeleteOnSubmit ve DeleteAllOnSubmit metodlari kullanilmaktadir. Beraberinde SubmitChanges metodu da kodlari eklen

 
 
 
LINQ Ogreniyorum Serisi 04

Linq To Sql’de tablolarimiza verileri guncelleyebilmemiz icin; DataContext icerisinde ki SubmitChanges metodu kullanilmaktadir. Bu komutlari kullanarak DataContext sinifinin yapisina da ihtiyac duyu

 
 
 

Comments


©2035 by Sevdanur Genc. Powered and secured by Wix

bottom of page