الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Read Eexel

بدأه محمد1991 في 27 مايو 2012 · 1 رد · 473 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اريد عمل زر يعمل import لملفات اكسل ويقوم بتفريغها داخل جدول موجود عندي بالبرنامج

وكالعادة أجد ضالتي في المنتدى العزيز ..

واستفدت كثيييييييييرا من موضوع سابق

/index.php?showtopic=224000

وقمت بكل ما اريد من استعراض للملفات وقراءة وتخزين

ولكن واجهتني مشكلة .في حال كون وجود فراغات داخل الجدول الغير موضوع له حدود

اذا كان يوجد فراغات فانه لا يعتبر وجودها وينتقل الى العنصر التالي مما يودي الى اختلاف في ترتيب البيانات ..

بسبب مشكلة القرااءة

كيف استطيع حل هذه المشكلة ..

package academicscheduler;

import academicscheduler.AvalibleCourse.CustomTableCellRenderer;
import java.awt.Color;
import java.awt.Component;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

public class ReadExcel1 {

public static ArrayList  <Integer> CourseNo =new <Integer> ArrayList() ;
 public static ArrayList  <String> CourseName  =new <String> ArrayList() ;
 public static ArrayList  <String> Istructor  =new <String> ArrayList() ;
 public static ArrayList  <Integer> Room =new <Integer> ArrayList() ;
 public static ArrayList  <Integer> Hour =new <Integer> ArrayList() ;
 public static ArrayList  <String> Time  =new <String> ArrayList() ;
 public static ArrayList  <String> Day  =new <String> ArrayList() ;

    public ReadExcel1() {
		FileInputStream input = null;
		Workbook workBook;
                String filePath="";
		try {
                    JFileChooser fileopen = new JFileChooser();
    FileFilter filter = new FileNameExtensionFilter("c files", "Desktop");
    fileopen.addChoosableFileFilter(filter);

    int ret = fileopen.showDialog(null, "Open file");

    if (ret == JFileChooser.APPROVE_OPTION) {
      File file = fileopen.getSelectedFile();

       filePath=file.toString();
    }

                        input = new FileInputStream(filePath);
			workBook = WorkbookFactory.create(input);
			Sheet sheet = workBook.getSheetAt(0);

                        int jcol=-1;
                        int jrow=0;
             for(int i=0;i<=sheet.getLastRowNum();i++){
			Row row = sheet.getRow(i);
			Iterator<Cell> iterator = row.cellIterator();
		while (iterator.hasNext()&&jcol<6) {
           //  for(int j=0;j<7;j++){   

				Cell cell = iterator.next();

                                int cellType = cell.getCellType();

				switch (cellType) {

                                     case Cell.CELL_TYPE_BLANK:
                                        {jcol=jcol+1;
                                            ExteraCourse.jTable1.setValueAt("BLANK", jrow, jcol);


                                        }break;

                                     case Cell.CELL_TYPE_BOOLEAN:
                                        {
                                        jcol=jcol+1;       
                                        ExteraCourse.jTable1.setValueAt((cell.getBooleanCellValue()), jrow, jcol);


                                        }break;


                                    case Cell.CELL_TYPE_FORMULA:
                                        {jcol=jcol+1;

                                                ExteraCourse.jTable1.setValueAt((cell.getCellFormula()), jrow, jcol);

                                        }break;

                                    case Cell.CELL_TYPE_NUMERIC:
                                        {jcol=jcol+1;

                                        ExteraCourse.jTable1.setValueAt((int)cell.getNumericCellValue(), jrow, jcol);
                                   }
                                                break;

                                    case Cell.CELL_TYPE_STRING:
                                        {jcol=jcol+1;
                                            ExteraCourse.jTable1.setValueAt(String.valueOf(cell.getStringCellValue()), jrow, jcol);	

                                        }break;



                                }
			}

                        jrow++;
                        if(jrow>=10)      
                            add();                
                            jcol=-1;

                  }     

             for(int i=jrow;i< ExteraCourse.jTable1.getRowCount();i++)
                 for(int j=0;j< ExteraCourse.jTable1.getColumnCount();j++)
                 { ExteraCourse.jTable1.setValueAt(null, i,j);

                 }

		} catch (FileNotFoundException ex) {
			ex.printStackTrace();
		} catch (IOException ex) {
			ex.printStackTrace();
		} catch (InvalidFormatException ex) {
			ex.printStackTrace();
		} finally {
			try {
				input.close();
			} catch (IOException ex) {
				ex.printStackTrace();
			}
		}
	}


    public void add(){
         DefaultTableModel jdtm=  (DefaultTableModel) ExteraCourse.jTable1.getModel();


   String S1=""; String S2=""; String S3=""; String S4="";


                                Object obj[] = {S1,S2,S3,S4};
                                jdtm.addRow(obj);
                                Object o = new Object();




                    	TableColumn	tcol = ExteraCourse.jTable1.getColumnModel().getColumn(0);
	                     	tcol.setCellRenderer(new CustomTableCellRenderer());

    }




    	public class CustomTableCellRenderer extends DefaultTableCellRenderer{
        @Override
		public Component getTableCellRendererComponent (JTable table, Object obj, boolean isSelected, boolean hasFocus, int row, int column) {
			Component cell = super.getTableCellRendererComponent(table, obj, isSelected, hasFocus, row, column);
			setHorizontalAlignment(SwingConstants.CENTER);
                        if (isSelected) {
                            if (row % 2 == 1) {
					cell.setBackground(new Color(80,147,198));
				}
				else {
					cell.setBackground(Color.white);
                            }

			} 
			else {
				if (row % 2 == 1) {
					cell.setBackground(new Color(80,147,198));
				}
				else {
					cell.setBackground(Color.white);
				}
			}
			return cell;
		}
	}
}
#2

لا تستخد Iterator وقم باللف على الأعمدة عن طريق getCell

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة