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

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

خروجی اکسل

جمعه, 19 مهر 1398 12:15

خروجی اکسل

سلام

من در برنامم یک گرید دارم که با زدن دکمه ای خروجی اکسل تهیه میشه و بعد هم ذخیره میکنه.

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

بر روی چند تا سیستم هم امتحان کردم برنامه مشکل نداره ولی خروجی اکسل نمیده.

اینهم کدهای ایجاد فایل اکسل

public void ExportData()
        {

            try
            {
                object misValue = System.Reflection.Missing.Value;
                Microsoft.Office.Interop.Excel.Application excelApp = new

                Microsoft.Office.Interop.Excel.Application();

                Microsoft.Office.Interop.Excel.Workbook excelBook =

                excelApp.Workbooks.Add(XlSheetType.xlWorksheet);

                Microsoft.Office.Interop.Excel.Worksheet excelWorksheet =

               (Worksheet)(excelBook.Worksheets[1]);

                if (dtrcords.Rows.Count == 0) { MessageBox.Show("اطلاعات وجود ندارد", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                else
                {

                excelWorksheet.DisplayRightToLeft = true;

                Range rng1 = excelWorksheet.get_Range("A1", "A1");

                rng1.Value2 = "کد رهگیری";

                rng1.Font.Bold = true;

                Range rng2 = excelWorksheet.get_Range("B1", "B1");

                rng2.Value2 = "خواهان";

                rng2.Font.Bold = true;

                Range rng3 = excelWorksheet.get_Range("C1", "C1");

                rng3.Value2 = "مبلغ";

                rng3.Font.Bold = true;
                Range rng4 = excelWorksheet.get_Range("D1", "D1");

                rng4.Value2 = "تاریخ";

                rng4.Font.Bold = true;
                
                int i = 1;
                DataSet ds = new DataSet();
                ds.Tables.Add(dtrcords);
             
                    foreach (DataRow r in ds.Tables[0].Rows)
                    {

                        i++;

                        string s = i.ToString();

                        Range r1 = excelWorksheet.get_Range("A" + s, "A" + s);
                        r1.NumberFormat = "@";
                        r1.Value2 = r[0].ToString();

                        Range r2 = excelWorksheet.get_Range("B" + s, "B" + s);

                        r2.Value2 = r[1].ToString();

                        Range r3 = excelWorksheet.get_Range("C" + s, "C" + s);

                        r3.Value2 = r[2].ToString();
                        Range tt = excelWorksheet.get_Range("D" + s, "D" + s);

                        tt.Value2 = r[3].ToString();






                    }
                    saveFileDialog1.Filter = "xls|*.xls";
                    DialogResult dr;
                    dr = saveFileDialog1.ShowDialog();
                    if (dr == DialogResult.OK)
                    {
                        string path = saveFileDialog1.FileName;
                        excelApp.Visible = false;
                        excelBook.SaveAs(path);
                        excelBook.Close();
                        excelApp.Quit();
                    }
                }

            }

            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);

            }
        }

شنبه, 20 مهر 1398 08:27

سلام

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

حدس می زنم که dll مربوط به Microsoft.Office.Interop.Excel در خروجی exe  شما به درستی اضافه نشده

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

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