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

كيفية قراءة ملف Excel في جافا

بدأه مصطفى 1 في 31 ديسمبر 2008 · 4 رد · 3,243 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ارجو التفضل بمساعدتي في معرفة كيفية قراءة جدوال من ملف excel وخزنه في مصفوفة وstrecture او تكوين object لكل حقل في الجدوال ولكم مني جزيل الشكر والامتنان

#2

السلام عليكم,

أخوي مصطفى أنا ممكن أساعدك بس لو تعطيني سيناريو محدد للبرنامج و ممكن أعمله لك إن شاء الله. أنا قلت أقرأ لك بيانات من ملف Excel وأضعها في جدول بس ما أبغى يكون الأمر صعب عليك لأني ما أدري أنت تعرف تتعامل مع كائن JTable أو لا و إذا كنت ما تعرف فأتوقع إنك ما راح تستفيد من الكود وراح تلاقيه صعب عليك, لكن أنت بس قل ليه سيناريو محدد وأبشر بسعدك.

أتمنى لك التوفيق,,,

#3

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

هذا كود حسب ما اعلم انه يصنع excel sheets و وضعته لعل و عسا يفيدك

import java.io.*;
import jxl.*;
import java.util.*;
import jxl.Workbook;
import jxl.write.DateFormat;
import jxl.write.Number;

import jxl.write.*;
import java.text.SimpleDateFormat;

class  create
{
  public static void main(String[] args) 
  {
	try
	{
	  String filename = "input.xls";
	  WorkbookSettings ws = new WorkbookSettings();
	  ws.setLocale(new Locale("en", "EN"));
	  WritableWorkbook workbook = 
		Workbook.createWorkbook(new File(filename), ws);
	  WritableSheet s = workbook.createSheet("Sheet1", 0);
	  WritableSheet s1 = workbook.createSheet("Sheet1", 0);
	  writeDataSheet(s);
	  writeImageSheet(s1);
	  workbook.write();
	  workbook.close();	  
	}
	catch (IOException e)
	{
	  e.printStackTrace();
	}
	catch (WriteException e)
	{
	  e.printStackTrace();
	}
  }

  private static void writeDataSheet(WritableSheet s) 
	throws WriteException
  {

	/* Format the Font */
	WritableFont wf = new WritableFont(WritableFont.ARIAL, 
	  10, WritableFont.BOLD);
	WritableCellFormat cf = new WritableCellFormat(wf);
	cf.setWrap(true);

	/* Creates Label and writes date to one cell of sheet*/
	Label l = new Label(0,0,"Date",cf);
	s.addCell(l);
	WritableCellFormat cf1 = 
	  new WritableCellFormat(DateFormats.FORMAT9);

	DateTime dt = 
	  new DateTime(0,1,new Date(), cf1, DateTime.GMT);

	s.adCell(dt);

	/* Creates Label and writes float number to one cell of sheet*/
	l = new Label(2,0,"Float", cf);
	s.addCell(l);
	WritableCellFormat cf2 = new WritableCellFormat(NumberFormats.FLOAT);
	Number n = new Number(2,1,3.1415926535,cf2);
	s.addCell(n);

	n = new Number(2,2,-3.1415926535, cf2);
	s.addCell(n);

	/* Creates Label and writes float number upto 3 
	   decimal to one cell of sheet */
	l = new Label(3,0,"3dps",cf);
	s.addCell(l);
	NumberFormat dp3 = new NumberFormat("#.###");
	WritableCellFormat dp3cell = new WritableCellFormat(dp3);
	n = new Number(3,1,3.1415926535,dp3cell);
	s.addCell(n);

	/* Creates Label and adds 2 cells of sheet*/
	l = new Label(4, 0, "Add 2 cells",cf);
	s.addCell(l);
	n = new Number(4,1,10);
	s.addCell(n);
	n = new Number(4,2,16);
	s.addCell(n);
	Formula f = new Formula(4,3, "E1+E2");
	s.addCell(f);

	/* Creates Label and multipies value of one cell of sheet by 2*/
	l = new Label(5,0, "Multipy by 2",cf);
	s.addCell(l);
	n = new Number(5,1,10);
	s.addCell(n);
	f = new Formula(5,2, "F1 * 3");
	s.addCell(f);

	/* Creates Label and divide value of one cell of sheet by 2.5 */
	l = new Label(6,0, "Divide",cf);
	s.addCell(l);
	n = new Number(6,1, 12);
	s.addCell(n);
	f = new Formula(6,2, "F1/2.5");
	s.addCell(f);
  }

  private static void writeImageSheet(WritableSheet s) 
	throws WriteException
  {
	/* Creates Label and writes image to one cell of sheet*/	
	Label l = new Label(0, 0, "Image");
	s.addCell(l);
	WritableImage wi = new WritableImage(0, 3, 5, 7, new File("image.png"));
	s.addImage(wi);

	/* Creates Label and writes hyperlink to one cell of sheet*/
	l = new Label(0,15, "HYPERLINK");
	s.addCell(l);
	Formula f = new Formula(1, 15, 
	  "HYPERLINK(\"http://www.andykhan.com/jexcelapi\", "+
	  "\"JExcelApi Home Page\")");
	s.addCell(f);

	}
}

تم تعديل هذه المشاركة بواسطة Mohammed Mshari Ersan في 1 يناير 2009 في 14:12

#4

منمون اخي منك

انا عمل نظام ادارة يعني خاص بالرواتب والغيابات والاحصائيات ولازم البرنامح يعمل تقرير واستعلام وهكذا بس المشكلة هي ان البيانات تاتي بشكل جدوال excel من بقية الدوائر . نحن نستخدم برنامج filemaker وهو برنامج جاهز صيحح فعال بس ما برنامج مستقل وانا بصراحة جيد في الجافا وخبرتي في باقي اللغات قليلة

يعني اريد اسحب الاعمدة او الصفوف على مصفوفة في بداية تشغيل البرنامج حتى استطيع التعامل معها او حتى لو تبقى في داخل الجدول excel وتعامل معها ...

انا تعرفة على ايعاز datagiudview في فجويل اسديو 2005 بس هذا ايعاز بس يسحب بس من الaccess او اوركل.وجداً معقد.وانا راح ادرس الكود اللي بعثتو وإن شاء الله تحل مشكلتي.

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