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

نام تاپیک: dispose کردن پروسه excel

  1. #1

    dispose کردن پروسه excel

    سلام دوستان
    با استفاده از کدهای زیر اطلاعات یک دیتا گرید رو توی یک فایل اکسل ذخیره می کنم مشکلی که وجود داره اینه که هربار برنامه اجرا میشه وفایل خروجی ساخته میشه
    توی تسک منیجر ویندوز یک پروسس به نام EXCEL.EXE ایجاد میکنه و اگه تعداد دفعات اجرای برنامه بالا بره ویندوز هنگ میکنه متد dispose رو هرجای کدهام اجرا میکنم باز این مشکل حل نمیشه ممنون میشم دوستان راهنمائی بفرمایند که این متد رو کجا وبه چه صورت اجرا کنم که مشکل رفع بشه
     string code_meli, Personal_Number, Year, Month;    code_meli = txt_code_meli.Text;
    Personal_Number = txt_Pnumber.Text;
    Year = txt_Year.Text;
    Month = txt_Month.Text;
    //بایند کردن دیتا گرید ویو به جدول
    string ShowAll = "select * from dbo.Personal where code_meli='" + code_meli + "'AND Year='" + Year + "'AND Month='" + Month + "'";
    DataTable dt = new DataTable();
    dt = Conction.DoQuery(ShowAll);
    dgv1 .DataSource =dt ;

    object miss = System.Reflection.Missing.Value;
    Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
    Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
    Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
    app.Visible = false;
    worksheet = workbook.Sheets["Sheet1"];
    worksheet = workbook.ActiveSheet;
    worksheet.Name = "مهرماه";
    worksheet.Cells[1] = "ردیف";
    worksheet.Cells[2] = "شماره پرسنلی";
    worksheet.Cells[4] = "کدملی";
    worksheet.Cells[3] = "نام ونام خانوادگی";
    worksheet.Cells[5] = "کارکردماه";


    for (int i = 0; i < dgv1.Rows.Count - 1; i++)
    {

    for (int j = 0; j < dgv1.Columns.Count; j++)
    {
    worksheet.Cells[i + 2, j + 2] = dgv1.Rows[i].Cells[j].Value;

    }
    }


    //ایجاد فایل خروجی
    SaveFileDialog sfd = new SaveFileDialog();
    sfd.Filter = "Excel Document(*.xlsx)|*.xlsx";
    sfd.FileName = "Export";
    if (sfd.ShowDialog() == DialogResult.OK)
    {
    workbook.SaveAs(sfd.FileName, 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);
    }
    app.Quit();

    }


  2. #2

    نقل قول: dispose

    سلام دوستان عنایتی بفرمائید مشکل بنده حل بشه

  3. #3
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: dispose

    سه خط زیر رو به انتهای کد اضافه کنید:
    app=null;
    workbook=null;
    worksheet==null;

  4. #4

    نقل قول: dispose

    ممنون از پاسختون ولی جواب نداد دوستان راهنمائی دیگه ای اگر دارید ممنون می شم

  5. #5

    نقل قول: dispose

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

  6. #6
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: dispose

    برای من جواب میده البته یه چند ثانیه ای طول میکشه که طبیعیه.
    شما خط زیر رو هم کامنت کن، این خط دیگه اون پیغام save رو در لود اکسل نمایش نمیده:
    app.Quit();

  7. #7

    نقل قول: dispose

    سلا دوست عزیز اتفاقا گرید تلریک هست ولی مشکل اینه که خروجی برنامه که تبدیل میشه به یک فایل اکسل از چند تا تیبل داده هاشو میگیره و توی چند تا فایلشیت یک فایل اکسل میریزه
    نقل قول نوشته شده توسط com_engineer_ab مشاهده تاپیک
    پیشنهاد من اینه که از یکی از کنترل های تلریک استفاده کنی
    اینطوری میتونی از گرایدت به چند مدل فایل که یکیش هم اکسل هست خروجی بگیری
    از طرفی هم با همچین مشکلاتی مواجه نمیشی

  8. #8

    نقل قول: dispose

    نقل قول نوشته شده توسط Mahmoud Zaad مشاهده تاپیک
    برای من جواب میده البته یه چند ثانیه ای طول میکشه که طبیعیه.
    شما خط زیر رو هم کامنت کن، این خط دیگه اون پیغام save رو در لود اکسل نمایش نمیده:
    app.Quit();
    سلام باز هم نشد توی تسک منیجربازهم یک پروسس به اسم EXCEL.EXE دارم

  9. #9

    نقل قول: dispose کردن پروسه اکسل

    برای اینکه برنامه وابسته به اکسل از مجموعه office نباشد، از پروژه های رایگان یا اوپن سورسی مثل EPPlus و OpenXMLSDK و ... استفاده کنید.

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

  1. مخفی کردن پروسه
    نوشته شده توسط aloneinc در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 6
    آخرین پست: چهارشنبه 14 آذر 1386, 11:30 صبح
  2. مشکل در کار کردن با Excel
    نوشته شده توسط sahab555 در بخش C#‎‎
    پاسخ: 8
    آخرین پست: سه شنبه 08 آبان 1386, 10:56 صبح
  3. import کردن از excell به sqlserver
    نوشته شده توسط amireto در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 2
    آخرین پست: سه شنبه 02 مرداد 1386, 00:22 صبح
  4. باز کردن فایل excel به شکل read only
    نوشته شده توسط mehraaveh80 در بخش VB.NET
    پاسخ: 1
    آخرین پست: جمعه 29 مهر 1384, 22:05 عصر

برچسب های این تاپیک

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

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