استيراد المحتويات من مصنف Excel إلى المكون JTable
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: قواعد البيانات JAVA JDBC
صفحة 1 من اصل 1 • شاطر
استيراد المحتويات من مصنف Excel إلى المكون JTable
توضح تلك المقالة كيفية استيراد محتويات excel إلى JTable.
يوضح الكود التالى كيفية اتاحة المستخدمين تحديد مصنف excel من خلال (JFileChooser). بمجرد استيراد ملف excel المحدد ، يتم سرد جميع أوراق العمل المتاحة للمستخدم (JOptionPane). الآن استنادًا إلى محتويات ورقة excel المختارة ، يتم تحميل المحتويات المقابلة في تنسيق جدولي (JTable)
للملاحظه،
يقبل تنسيق .xls فقط
يمكن استيراد ورقة إكسل واحدة فقط في وقت واحد
يعتبر الصف الأول من ورقة excel بمثابة رأس لـ JTable
يستخدم الكائن HSSF للوصول إلى مصنف Excel من خلال Java
الاخراج :
1_تحديد ملف الاكسل

2_ يتم تحميل كافة المصنفات أو sheet الاكسل و اختيار المصنف المطلوب

3_يتم تحميل بيانات ال sheet الى جدول البيانات

يوضح الكود التالى كيفية اتاحة المستخدمين تحديد مصنف excel من خلال (JFileChooser). بمجرد استيراد ملف excel المحدد ، يتم سرد جميع أوراق العمل المتاحة للمستخدم (JOptionPane). الآن استنادًا إلى محتويات ورقة excel المختارة ، يتم تحميل المحتويات المقابلة في تنسيق جدولي (JTable)
للملاحظه،
يقبل تنسيق .xls فقط
يمكن استيراد ورقة إكسل واحدة فقط في وقت واحد
يعتبر الصف الأول من ورقة excel بمثابة رأس لـ JTable
يستخدم الكائن HSSF للوصول إلى مصنف Excel من خلال Java
- الكود:
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class excelTojTable extends JFrame {
static JTable table;
static JScrollPane scroll;
// header is Vector contains table Column
static Vector headers = new Vector();
static Vector data = new Vector();
// Model is used to construct
DefaultTableModel model = null;
// data is Vector contains Data from Excel File static Vector data = new Vector();
static JButton jbClick;
static JFileChooser jChooser;
static int tableWidth = 0;
// set the tableWidth
static int tableHeight = 0;
// set the tableHeight
public excelTojTable()
{
super("Import Excel To JTable");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel buttonPanel = new JPanel();
buttonPanel.setBackground(Color.white);
jChooser = new JFileChooser();
jbClick = new JButton("Select Excel File");
buttonPanel.add(jbClick, BorderLayout.CENTER);
// Show Button Click Event
jbClick.addActionListener(new ActionListener()
{
@Override public void actionPerformed(ActionEvent arg0)
{
jChooser.showOpenDialog(null);
jChooser.setDialogTitle("Select only Excel workbooks");
File file = jChooser.getSelectedFile();
if(file==null)
{
JOptionPane.showMessageDialog(null, "Please select any Excel file.", "Help",JOptionPane.INFORMATION_MESSAGE);
return;
}
else if(!file.getName().endsWith("xls"))
{
JOptionPane.showMessageDialog(null, "Please select only Excel file.", "Error",JOptionPane.ERROR_MESSAGE);
}
else
{
fillData(file);
model = new DefaultTableModel(data, headers);
tableWidth = model.getColumnCount() * 150;
tableHeight = model.getRowCount() * 25;
table.setPreferredSize(new Dimension( tableWidth, tableHeight)); table.setModel(model);
}
}
}
);
table = new JTable();
table.setAutoCreateRowSorter(true);
model = new DefaultTableModel(data, headers);
table.setModel(model);
table.setBackground(Color.pink);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setEnabled(false);
table.setRowHeight(25);
table.setRowMargin(4);
tableWidth = model.getColumnCount() * 150;
tableHeight = model.getRowCount() * 25;
table.setPreferredSize(new Dimension( tableWidth, tableHeight));
scroll = new JScrollPane(table); scroll.setBackground(Color.pink);
scroll.setPreferredSize(new Dimension(300, 300));
scroll.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
getContentPane().add(buttonPanel, BorderLayout.NORTH);
getContentPane().add(scroll, BorderLayout.CENTER);
setSize(600, 600);
setResizable(true); setVisible(true);
}
/** * Fill JTable with Excel file data. * * @param file * file :contains xls file to display in jTable */
void fillData(File file)
{
int index=-1;
HSSFWorkbook workbook = null;
try {
try {
FileInputStream inputStream = new FileInputStream (file);
workbook = new HSSFWorkbook(inputStream);
}
catch (IOException ex)
{
Logger.getLogger(excelTojTable.class. getName()).log(Level.SEVERE, null, ex);
}
String[] strs=new String[workbook.getNumberOfSheets()];
//get all sheet names from selected workbook
for (int i = 0; i < strs.length; i++)
{
strs[i]= workbook.getSheetName(i);
}
JFrame frame = new JFrame("Input Dialog");
String selectedsheet = (String) JOptionPane.showInputDialog(frame, "Which worksheet you want to import ?", "Select Worksheet",
JOptionPane.QUESTION_MESSAGE,
null,
strs,
strs[0]);
if (selectedsheet!=null)
{
for (int i = 0; i < strs.length; i++)
{
if (workbook.getSheetName(i).equalsIgnoreCase(selectedsheet))
index=i;
}
HSSFSheet sheet = workbook.getSheetAt(index);
HSSFRow row=sheet.getRow(0);
headers.clear();
for (int i = 0; i < row.getLastCellNum(); i++)
{
HSSFCell cell1 = row.getCell(i);
headers.add(cell1.toString());
}
data.clear();
for (int j = 1; j < sheet.getLastRowNum() + 1; j++)
{
Vector d = new Vector();
row=sheet.getRow(j);
int noofrows=row.getLastCellNum();
for (int i = 0; i < noofrows; i++)
{
//To handle empty excel cells
HSSFCell cell=row.getCell(i, org.apache.poi.ss.usermodel.Row.CREATE_NULL_AS_BLANK );
System.out.println (cell.getCellType());
d.add(cell.toString());
}
d.add("\n");
data.add(d);
}
}
else
{
return;
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args) {
new excelTojTable();
}
}
الاخراج :
1_تحديد ملف الاكسل

2_ يتم تحميل كافة المصنفات أو sheet الاكسل و اختيار المصنف المطلوب

3_يتم تحميل بيانات ال sheet الى جدول البيانات

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ

NEXT- الادارة
- تاريخ التسجيل : 18/02/2011
المساهمات : 446
النقاط : 200660
التقيم : 28
الدولة :
الجنس :
رد: استيراد المحتويات من مصنف Excel إلى المكون JTable
أحسنت
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: استيراد المحتويات من مصنف Excel إلى المكون JTable
عمل جيد بارك الله فيك
انا ابحث عن كيفية استيراد ملف excel من طرف قاعدة بيانات بإستعمال الجافا طبعا
وشكرا مسبقا
انا ابحث عن كيفية استيراد ملف excel من طرف قاعدة بيانات بإستعمال الجافا طبعا
وشكرا مسبقا
mergac- .
- تاريخ التسجيل : 03/11/2019
المساهمات : 7
النقاط : 8
التقيم : 1
الدولة :
الجنس :
رد: استيراد المحتويات من مصنف Excel إلى المكون JTable
عمل جيد بارك الله فيك
انا ابحث عن كيفية استيراد ملف excel من طرف قاعدة بيانات بإستعمال الجافا طبعا
وشكرا مسبقا
أهلا بيكم [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] ...اليكى الشفرة التالية :
- الكود:
import java.io.*;
import java.sql.*;
import java.util.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
/**
* Sample Java program that imports data from an Excel file to MySQL database.
*
*
*/
public class Excel2DatabaseTest {
public static void main(String[] args) {
String jdbcURL = "jdbc:mysql://localhost:3306/sales";
String username = "user";
String password = "password";
String excelFilePath = "Students.xlsx";
int batchSize = 20;
Connection connection = null;
try {
long start = System.currentTimeMillis();
FileInputStream inputStream = new FileInputStream(excelFilePath);
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet firstSheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = firstSheet.iterator();
connection = DriverManager.getConnection(jdbcURL, username, password);
connection.setAutoCommit(false);
String sql = "INSERT INTO students (name, enrolled, progress) VALUES (?, ?, ?)";
PreparedStatement statement = connection.prepareStatement(sql);
int count = 0;
rowIterator.next(); // skip the header row
while (rowIterator.hasNext()) {
Row nextRow = rowIterator.next();
Iterator<Cell> cellIterator = nextRow.cellIterator();
while (cellIterator.hasNext()) {
Cell nextCell = cellIterator.next();
int columnIndex = nextCell.getColumnIndex();
switch (columnIndex) {
case 0:
String name = nextCell.getStringCellValue();
statement.setString(1, name);
break;
case 1:
Date enrollDate = nextCell.getDateCellValue();
statement.setTimestamp(2, new Timestamp(enrollDate.getTime()));
case 2:
int progress = (int) nextCell.getNumericCellValue();
statement.setInt(3, progress);
}
}
statement.addBatch();
if (count % batchSize == 0) {
statement.executeBatch();
}
}
workbook.close();
// execute the remaining queries
statement.executeBatch();
connection.commit();
connection.close();
long end = System.currentTimeMillis();
System.out.printf("Import done in %d ms\n", (end - start));
} catch (IOException ex1) {
System.out.println("Error reading file");
ex1.printStackTrace();
} catch (SQLException ex2) {
System.out.println("Database error");
ex2.printStackTrace();
}
}
}
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: قواعد البيانات JAVA JDBC
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
» كبسولات نباتية فارغة
» شحن عملات تيك توك مجانا بدون رقم هاتف
» فوط صحية ناعمة لايام الولادة بالقطن العضوية قوية الامتصاص| organyckw
» اعلانات الباصات الكويت | شركة دعاية واعلان | كواليتي ميكرز | 0096597550465
» كيفية تحديد سعر تصميم تطبيقات الجوال– ايكون تك
» تعلم كيفية حفظ و أسترجاع الصورة فى قاعدة بيانات أكسس باستخدام الكائن Stream object
» كيفية تأسيس شركة في دبي
» افضل واحدث كاميرات المراقبة الامنية والمشاهدة عبر الانترنت
» اصنع شبكتك بنفسك