Excel'den Arff Formatina Donusumu Saglayan Program
- 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(); } } }
Comments