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

نام تاپیک: فوت و فن های کار با اکسل در سی شارپ

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    Question نقل قول: فوت وفن های کار با اکسل در سی شارپ

    نقل قول نوشته شده توسط sahar مشاهده تاپیک
    Excel :
    ________________________________________


    در این تاپیک خلاصه ای از مشکلات کار با اکسل و راه حل های آن را به همراه لینک های اصلی مورد استفاده می خوانید:

    سوال 1 :

    چگونه می توان یک فایل اکسل را خواند ؟


    1- با استفاده از ابزارDCOM Excel

    2- با استفاده ازOLEDB CONNECTION :
    * توجه این روش امن تر ودر اجرا بسیار سریع تر است.
    ** فایلهای با فرمت غیز جدولی Non .XLS رابا این روش نمی توان بازکرد. برای حل این مشکل به سوال 4 مراجعه کنید.


    Top Links:
    http://support.microsoft.com/default...oduct=NETFrame





    ________________________________________
    سوال 2 :
    علت بروز خطای زیر هنگام باز کردن ٍExcel.WorkBooks چیست ؟
    (Old Format Or Invalid Type Library)

    این خطا به علت تنظیمات غیر انگلیسی در Reginal Setting اتفاق می افتد و برای حل آن به کد زیر توجه کنید:

    کد:

    System.Globalization.CultureInfo oldCI =
    System.Threading.Thread.CurrentThread.CurrentCultu re;
    System.Threading.Thread.CurrentThread.CurrentCultu re =
    new System.Globalization.CultureInfo("en-US");

    m_objBooks.Open(dataSourcePath + excelFileName ,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_ob jOpt,m_objOpt, _objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objO pt,m_objOpt);

    System.Threading.Thread.CurrentThread.CurrentCultu re =
    oldCI;

    ________________________________________
    سوال 3 :
    چگونه می توان همه حافظه اشغال شده توسط Excel.Application و سایر کلاس های آن را آزاد کرد؟

    باید توجه کنیم که با بستن و نال کردن متغیر های ابزار اکسل حافظه اشغال شده آن آزاد نمی شود . بلکه استفاده از ابزار های زیر برای آزاد سازی حافظه ضروری ست :
    کد:

    m_objBook.Close(false, m_objOpt, m_objOpt);
    m_objBooks.Close();
    m_objExcel.Quit();
    System.Runtime.InteropServices.Marshal.ReleaseComO bject (m_objBook);
    System.Runtime.InteropServices.Marshal.ReleaseComO bject (m_objBooks);
    System.Runtime.InteropServices.Marshal.ReleaseComO bject (m_objExcel);
    m_objBook=null;
    m_objBooks=null;
    m_objExcel=null;
    GC.Collect(); // force final cleanup!
    _________________



    ________________________________________
    4- چگونه می توان سایر فرمت های فایل های اکسل مثل .csv را به فرمت XLS تبدیل کرد؟

    باباز کردن آن توسط ٍExcel.WorkBooks و ذخیره مجدد آن در دستورات زیر:
    کد:


    m_objBooks.Open(dataSourcePath + excelFileName ,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_ob jOpt,m_objOpt,
    m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_objOpt,m_obj Opt,m_objOpt);


    m_objBook = m_objExcel.ActiveWorkbook;
    // Save the text file in the typical workbook format and quit Excel.
    m_objBook.SaveAs(dataSourcePath+"Temp.XLS", Excel.XlFileFormat.xlWorkbookNormal,
    m_objOpt, m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange, m_objOpt, m_objOpt,
    m_objOpt, m_objOpt, m_objOpt);

    ________________________________________
    سوال 5 :
    هنگام نیو کردن Excel.Application در محیط وب با خطای زیر روبرو می شویم ؟ علت و راه حل آن چیست ؟
    (Access Denied)


    علت : امکان دسترسی به این DCOM توسط ASP.NET وجود ندارد.

    راه حل :باید در کامپیوتر سرور این اجازه دسترسی را صادر کنیم.
    مراحل صدور این مجوز این است :

    1- اجرای کامند روبرو در Run :dcomcnfg.exe
    2-با باز شدن برنامه سرویس Component Services به زیر شاخه زیر می رویم :

    Component Services => Computer => My Computer => DCOM Config
    3-برنامه Microsoft Excel Application را از لیست پیدا می کنیم و پراپرتی های آن را با کلیک راست می آوریم.

    4- اکنون زمان صدور مجوز برای ASPNET است.
    در تب Security :
    Access Permistion و Lunch Permistion را Customize می کنیم ویک گروه به نام ASPNET به لیست اضافه کرده و اجازه دسترسی آن را تیک می زنیم.

    Top Link:
    http://www.asp101.com/articles/jayra...et/default.asp

    در عنوان :Installing and running the sample:

    _________________



    ________________________________________
    سوال 6 :
    وقتی با استفاده از ابزار JetEngine OLEDB یک فایل اکسل را می خوانیم سطر اول Sheet خوانده نمی شود .
    علت و راه حل ان چیست ؟
    علت این است که سطر اول را به طور پیش فرض نام ستون های جدول فرض میکند .
    برای حل این مشکل در دات نت این فرمان را به ConnectionString اضافه می کنیم .(HDR=No):

    ترکیب کلی ConnectionString چنین است :
    کد:

    String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source="+ dataSourcePath + "Temp.XLS"+";Extended Properties='Excel 8.0;HDR=No;'";

    Top Link :
    http://www.codeproject.com/csharp/Excel2XML.asp

    در عنوان :Connection to Excel using Jet Engine

    _________________



    ________________________________________
    سوال 7:
    چگونه می توان نام شیت های اکسل را خواند ؟

    با استفاده از تابع GetOleDbSchemaTable در OLE DB:

    به قطعه کد زیر توجه کنید :
    کد:

    // parameter as appropriate for your environment.
    String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source="+ dataSourcePath + "Temp.XLS"+";Extended Properties='Excel 8.0;HDR=No;'";

    // Create connection object by using the preceding connection string.
    OleDbConnection objConn = new OleDbConnection(sConnectionString);

    // Open connection with the database.
    objConn.Open();

    System.Data.DataTable dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables , null);

    if(dt == null)
    {
    return null ;
    }

    String[] excelSheets = new String[dt.Rows.Count];
    int i = 0;

    // Add the sheet name to the string array.
    foreach(DataRow row in dt.Rows)
    {
    excelSheets[i] = row["TABLE_NAME"].ToString();
    i++;
    }


    _________________

    ________________________________________
    یک شیوه عالی و بی درد سربرای خواندن فایلهای CSV

    به جای استفاده از انواع Connection ها وCom ها وDcomها وDllها
    می توانید راحت وسریع فایلهای Csv راباشی StreamReader در دات نت بخوانید:
    به همین راحتی !!
    کد:


    DataSet ds = CreateDataSet();
    String line;
    //Open the CSV file to Read data From it
    System.IO.StreamReader filestreamReader =
    new System.IO.StreamReader(dataSourcePath + FileName);
    while ((line = filestreamReader.ReadLine()) != null)
    {
    string[] strArray = ConvertCamaToArray(line );
    AddRow(ds , strArray) ;
    }
    filestreamReader.Close();
    return ds ;

    _________________
    _____________________________________
    _____________________________________
    اکسل رو توو گرید ایمپورت کردم.
    بعد وقتی میخوام سلولی که یک عددی تووشه رو مقدارش رو عوض کنم به رشته،
    ارور زیر میاد:
    http://up.iranblog.com/Files/d271e329197d42cf8e1e.JPG
    این رو واسم حل کنی دمت گرمه...


    +++++++++
    هیشکی نبود؟
    آخرین ویرایش به وسیله dr_jacky_2005 : شنبه 30 مرداد 1389 در 11:23 صبح

  2. #2

    نقل قول: فوت وفن های کار با اکسل در سی شارپ

    نقل قول نوشته شده توسط dr_jacky_2005 مشاهده تاپیک
    _____________________________________
    _____________________________________
    اکسل رو توو گرید ایمپورت کردم.
    بعد وقتی میخوام سلولی که یک عددی تووشه رو مقدارش رو عوض کنم به رشته،
    ارور زیر میاد:
    http://up.iranblog.com/Files/d271e329197d42cf8e1e.JPG
    این رو واسم حل کنی دمت گرمه...


    +++++++++
    هیشکی نبود؟


    سلام
    من میخوام فایل اکسل با فرمـ .xls,xlsx رو در پروژه وارد کنم ولی بعضی از ایتمها نظیر کدها مو جود نیستند زیرا در خود DAL ایجاد می شوند لطفا بگید چطور میتونم اکسل رو import کنم؟
    connection باز نمی کنه؟
    یه با پیغام Could not find installable ISAM. میده یه بارم The Microsoft Jet database engine could not find the object 'Sheet1$'. Make sure the object exists and that you spell its name and the path name correctly.

تاپیک های مشابه

  1. کار با اکسل در سی شارپ
    نوشته شده توسط project80888 در بخش C#‎‎
    پاسخ: 9
    آخرین پست: یک شنبه 20 مرداد 1392, 11:35 صبح
  2. کار با اکسل در سی شارپ
    نوشته شده توسط HDDSoft2001 در بخش C#‎‎
    پاسخ: 9
    آخرین پست: سه شنبه 31 اردیبهشت 1392, 09:55 صبح
  3. کار با اکسل در سی شارپ
    نوشته شده توسط shojaiehamid در بخش C#‎‎
    پاسخ: 2
    آخرین پست: یک شنبه 22 مرداد 1391, 11:46 صبح
  4. exe کردن فایل های اکسس و اکسل ؟
    نوشته شده توسط fardin_f10 در بخش Access
    پاسخ: 7
    آخرین پست: یک شنبه 06 اسفند 1385, 11:40 صبح
  5. پاسخ: 9
    آخرین پست: سه شنبه 30 آبان 1385, 15:10 عصر

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

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