نمایش نتایج 1 تا 11 از 11

نام تاپیک: مشکل در خواندن فایل excel

  1. #1

    Question مشکل در خواندن فایل excel

    سلام.
    با (OLEDB) به راحتی می تونم یه فایل Excel رو تو DataGridView نشون بدم . اما اگربخوام فایل Excel با فرمت خاصی رو که در اختیار دارم(لیست تراکنش های بانک ملی در یک روز ) بخونم Error میده و اگر اون فایل رو با نرم افزار Excel باز کنم و بعد با کدهای C#‎ بخونم Error نمیده . کسی میدونه چرا؟

  2. #2
    کاربر دائمی
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    مازندران
    پست
    449

    نقل قول: مشکل در خواندن فایل excel

    دوست عزيز مي تونيد كدتونو قرار بدين يا راهنمايي كنيد
    اخه بنده به اين كد احتياج دارم بسيار ممنون =>لطفا مورد زير رو كمكم كنيد
    ((OLEDB) یه فایل Excel رو تو DataGridView نشون بدم )

  3. #3
    کاربر دائمی
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    مازندران
    پست
    449

    نقل قول: مشکل در خواندن فایل excel

    دوست عزيز كمكم كنيد؟؟؟

  4. #4

    نقل قول: مشکل در خواندن فایل excel

    نقل قول نوشته شده توسط saber4166 مشاهده تاپیک
    دوست عزيز مي تونيد كدتونو قرار بدين يا راهنمايي كنيد
    اخه بنده به اين كد احتياج دارم بسيار ممنون =>لطفا مورد زير رو كمكم كنيد
    ((OLEDB) یه فایل Excel رو تو DataGridView نشون بدم )
    1. System.Data.OleDb را using کنید .
    2.
     
    private void BtnRead_Click(object sender, EventArgs e)
    {
    string StrCon = "Provider=microsoft.jet.oledb.4.0;Data source=D:\\test.xls;Extended properties=Excel 8.0;";
    OleDbConnection olCon = new OleDbConnection(StrCon);
    olCon.Open();
    OleDbDataAdapter da = new OleDbDataAdapter("select * from [sheet1$]", olCon);
    DataSet ds = new DataSet();
    da.Fill(ds, "sheet1");
    dataGridView1.DataSource = ds.Tables[0];
    olCon.Close();
    }


  5. #5

    Thumbs up نقل قول: مشکل در خواندن فایل excel

    نقل قول نوشته شده توسط zahra111 مشاهده تاپیک
    1. System.Data.OleDb را using کنید .
    2.
     
    private void BtnRead_Click(object sender, EventArgs e)
    {
    string StrCon = "Provider=microsoft.jet.oledb.4.0;Data source=D:\\test.xls;Extended properties=Excel 8.0;";
    OleDbConnection olCon = new OleDbConnection(StrCon);
    olCon.Open();
    OleDbDataAdapter da = new OleDbDataAdapter("select * from [sheet1$]", olCon);
    DataSet ds = new DataSet();
    da.Fill(ds, "sheet1");
    dataGridView1.DataSource = ds.Tables[0];
    olCon.Close();
    }

    کانکشن استرینگ زیر رو اگه استفاده کنید،از اکسل سال 1997 تا اکسل 2010 رو ساپورت میکنه:

    strConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
    "Data Source=" + strFilePath + "; Jet OLEDB:Engine Type=5;" +
    "Extended Properties=\"Excel 12.0;ImportMixedTypes=Text;HDR=NO;IMEX=1;\"";


    دکمۀ تشکر یادت نره

  6. #6

    نقل قول: مشکل در خواندن فایل excel

    کاربر dr_jacky_2005 ، چطور میشه ConnectionString رو تنظیم کرد که در فایل Excel ، چند خط اول رو به عنوان Data در نظر نگیره؟ در واقع از چند خط اول پرش کنه؟

  7. #7

    Lightbulb نقل قول: مشکل در خواندن فایل excel

    نقل قول نوشته شده توسط zahra111 مشاهده تاپیک
    کاربر dr_jacky_2005 ، چطور میشه ConnectionString رو تنظیم کرد که در فایل Excel ، چند خط اول رو به عنوان Data در نظر نگیره؟ در واقع از چند خط اول پرش کنه؟
    توو کانکشن استرینگ این قسمت:
    HDR=NO
    فقط میگه که سطر اول هدر بشه یا نه!

    شما تیکه کدی که باهاش داری دیتاگریدت رو پز میکنی رو بدین اینجا
    ...تا بگم

    اگه حس و حالش رو نداری...
    این یک تیکه کد است...ببین،ایده بگیر


    foreach (DataRow dgv in test.Rows)
    {
    dataGridView1.Rows.Add("");

    for (int i = 0; i < test.Columns.Count; i++)
    {
    dataGridView1.Rows[count].Cells[i].Value = dgv[i].ToString();
    }
    count++;
    }

    اون تست دیتا تیبل ام است.
    حالا فقط کافیه که مقدار i رو درست کنی


  8. #8

    نقل قول: مشکل در خواندن فایل excel

    نقل قول نوشته شده توسط zahra111 مشاهده تاپیک
    کاربر dr_jacky_2005 ، چطور میشه ConnectionString رو تنظیم کرد که در فایل Excel ، چند خط اول رو به عنوان Data در نظر نگیره؟ در واقع از چند خط اول پرش کنه؟
    بنده هم همین سوال رو دارم.
    آیا ConnectionString میتونه این امکان رو به ما بده؟

    +
    میشه ConnectionString رو توضیح بدید؟

  9. #9

    نقل قول: مشکل در خواندن فایل excel

    1.از اونجایی که چند سطر اول فایل اکسل من فرمت یکسانی ندارند (هم در نوع سلولها و هم در تعداد سلول ها متفاوتند ) ، مجبورم 6 خط اول رو که برای من ارزش داده ایی ندارند ، حذف کنم که کدش رو پیدا کردم و برای بقیه دوستان هم قرار میدم .
    اول به references پروژه ، Microsoft.Office.Interop.Excel رو add کنید .


    publicvoid DeleteExcelRows(string filePath,int RowNumber)
    {
    System.Threading.Thread.CurrentThread.CurrentCulture =
    new System.Globalization.CultureInfo("en-US");
    string xlsPath = filePath;
    Microsoft.Office.Interop.Excel.Application excelApp =
    new Microsoft.Office.Interop.Excel.ApplicationClass();
    Microsoft.Office.Interop.Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(xlsPath, 0,
    false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "",
    true, false, 0, true, false, false);
    Microsoft.Office.Interop.Excel.Worksheet sheet =
    (Microsoft.Office.Interop.Excel.Worksheet)excelWorkbook.Worksheets.get_Item(Sheet1);//sheetName
    Microsoft.Office.Interop.Excel.Range ran =
    (Microsoft.Office.Interop.Excel.Range)sheet.Rows[RowNumber, Type.Missing];
    ran.Select();
    ran.Delete(Microsoft.Office.Interop.Excel.XlDirection.xlUp);
    string tmpName = System.IO.Path.GetTempFileName();
    System.IO.File.Delete(tmpName);
    excelWorkbook.SaveAs(tmpName, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
    excelWorkbook.Close(false, Type.Missing, Type.Missing);
    excelApp.Quit();
    System.IO.File.Delete(xlsPath);
    System.IO.File.Move(tmpName, xlsPath);
    }

  10. #10

    نقل قول: مشکل در خواندن فایل excel

    ببخشید ممکن است بفرمایید چرا از OLEDB برای خواند فایل استفاده می نمایید؟
    و چرا مستقیما فایل را باز نمی کنید؟

  11. #11

    Lightbulb نقل قول: مشکل در خواندن فایل excel

    نقل قول نوشته شده توسط zahra111 مشاهده تاپیک
    1.از اونجایی که چند سطر اول فایل اکسل من فرمت یکسانی ندارند (هم در نوع سلولها و هم در تعداد سلول ها متفاوتند ) ، مجبورم 6 خط اول رو که برای من ارزش داده ایی ندارند ، حذف کنم که کدش رو پیدا کردم و برای بقیه دوستان هم قرار میدم .
    اول به references پروژه ، Microsoft.Office.Interop.Excel رو add کنید .


    publicvoid DeleteExcelRows(string filePath,int RowNumber)
    {
    System.Threading.Thread.CurrentThread.CurrentCulture =
    new System.Globalization.CultureInfo("en-US");
    string xlsPath = filePath;
    Microsoft.Office.Interop.Excel.Application excelApp =
    new Microsoft.Office.Interop.Excel.ApplicationClass();
    Microsoft.Office.Interop.Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(xlsPath, 0,
    false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "",
    true, false, 0, true, false, false);
    Microsoft.Office.Interop.Excel.Worksheet sheet =
    (Microsoft.Office.Interop.Excel.Worksheet)excelWorkbook.Worksheets.get_Item(Sheet1);//sheetName
    Microsoft.Office.Interop.Excel.Range ran =
    (Microsoft.Office.Interop.Excel.Range)sheet.Rows[RowNumber, Type.Missing];
    ran.Select();
    ran.Delete(Microsoft.Office.Interop.Excel.XlDirection.xlUp);
    string tmpName = System.IO.Path.GetTempFileName();
    System.IO.File.Delete(tmpName);
    excelWorkbook.SaveAs(tmpName, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
    excelWorkbook.Close(false, Type.Missing, Type.Missing);
    excelApp.Quit();
    System.IO.File.Delete(xlsPath);
    System.IO.File.Move(tmpName, xlsPath);
    }
    d
    اگه فرمت یکسانی ندارد سلول هایتان،چون که به صورت پیش فرض دابل میگیره.
    چطور درست کنیم مشکل رو؟
    باید طرز پر کردن دیتاگرید رو عوض کنیم.
    و همه رو string بدیم نوع هارو.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •