مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

لود کردن داده های Excel در دیتاگریدویو-C#

چهارشنبه, 10 بهمن 1397 19:32

لود کردن داده های Excel در دیتاگریدویو-C#

سلام 

کدهایی رو که پیوست کرده ام اجرا می شن ولی هیچ داده ای در دیتاگریدم وارد نمی شه و هیچ پیغام خطایی هم دریافت نمی کنم. خیلی از کدهای نوشته شده در جواب لود کردن داده از Excel رو بررسی کردم و تمامی مواردی که نوشته شده درست به نظر میرسه ولی نمیتونم پیدا کنم که مشکل چی هست!!!!

ممنون میشم کمک کنید.

 OpenFileDialog opnFDialXls = new OpenFileDialog();
            opnFDialXls.Filter = "Excel Documents (*.xls)|*.xls|Excel Documents (*.xlsx)|*.xlsx|Excel Documents (*.xlsm)|*.xlsm";
            opnFDialXls.Multiselect = false;
            opnFDialXls.Title = "Select an excel file to import";
            opnFDialXls.InitialDirectory = @"Desktop";
            if(opnFDialXls.ShowDialog()==DialogResult.OK)
            {
                string pathName = opnFDialXls.FileName;
                string fileName = Path.GetFileNameWithoutExtension(opnFDialXls.FileName);
                
                string strConn = string.Empty;
                string sheetName = fileName;
                FileInfo fi = new FileInfo(pathName);
                if(!fi.Exists)
                {
                    MessageBox.Show("The file does not exists or is not an excel file.", "Exception:\t1984EXIEX01", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    string extension = fi.Extension;
                    switch (extension)
                    {
                        case ".xls":
                            strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
                            break;
                        case ".xlsx":
                            strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'";
                            break;
                        case ".xlsm":
                            strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'";
                            break;
                        default:
                            strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
                            break;
                    }

                    OleDbConnection oleDBConn = new OleDbConnection(strConn);
                    oleDBConn.Open();
                    OleDbDataAdapter oda = new OleDbDataAdapter(string.Format("select * from [{0}$]", sheetName), oleDBConn);
                    DataTable dt = new DataTable();
                    oda.Fill(dt);

                    dGV1MainFrm.DataSource = dt.DefaultView;
                    oleDBConn.Close();

پنج شنبه, 11 بهمن 1397 08:47
پنج شنبه, 11 بهمن 1397 12:50

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید