السلام عليكم ورحمة الله وبركاته :
لدي ملف إكسل متعدد الأوراق ( أي فيه أكثر من شيت ) كيف يمكنني أن أستورد بيانات محددة من هذه الأوراق مع تحدد الأعمدة والصفوف التي سأستورد منها البيانات إلى داتا قريد في السي شارب أنا قمت بعمل الكود التالي :
OpenFileDialog selectFile = new OpenFileDialog();
// هنا تحديد الملفات الذي يقوم بعرضها صندوق فتح الملفات
selectFile.Filter = "All Files |*.*| Excel Files |*.XLS";
//بعد اختيار الملف من صندوق الملفات يقوم بفتحه
if (selectFile.ShowDialog()== DialogResult.OK)
{
// هنا تم تحديد الاتصال ببرنامج الاكسل ونوعيته
conncation = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source =" + selectFile.FileName + ";Extended Properties=Excel 12.0");
// هنا يتم جلب البيانات من ملف الإكسل
dtADbtar = new OleDbDataAdapter("Select * FROM [sheet1$a1:d5],[sheet2$a1:d5],[sheet3$a1:d5],[sheet4$a1:d5]", conncation);
dtTable = new DataTable();
dtADbtar.Fill(dtTable);
dataGridView1.DataSource = dtTable;
}
ولكن واجهتني عدة مشاكل منها أولا تكرار عملية البيانات ثانياً لو تم إضافة شيت آخر يجب أن أقوم بتعديل الكود ، فهل هناك حل لهذه المشكلة بحيث يقوم بسحب البيانات تلقائياً دون تكرار ،
وحتى لو تم إضافة شيتات جديدة يقوم بسحبها دون التعديل في الكود