PDA

View Full Version : سوال: فایل Microsoft.Office.Interop.Excel.dll برای ورژنهای مختلف آفیس



SardareEshgh
یک شنبه 01 اردیبهشت 1398, 17:08 عصر
دوستان سلام
یه برنامه نوشتم که بر روی اکسل کار میکنه. مشکل اینجاست که برنامه روی سیستمهایی که آفیس 2007 دارند مشکل نداره چون توی رفرنس برنامه فایل Microsoft.Office.Interop.Excel.dll ورژن 12 را اضافه کردم. (روی سیستم خودم هم 2007 هستش) اما روی سیستمی که افیس 2010 هستش خطا میده. به نظر شما چیکار باید کرد تا روی ورژنهای مختلف آفیس بتونه بدون مشکل کارکنه؟ گفتم شاید ورژن بالاتر اد کنم خطا نده. برای همین روی سیستمی که آفیس 2016 نصب بود توی رفرنس برنامه ، ورژن 15 رو اضافه کردم ولی روی سیستمهایی که آفیس کوچکتر دارند خطا میده!
ممنون

davidrobert
یک شنبه 01 اردیبهشت 1398, 21:47 عصر
بنده در این فایل از ارتباط نرم افزار با اکسل استفاده کردم هم با اکسل 2003 ، 2007و 2016 و 2019 تست گرفتم مشکلی نداشته و بدون مشکل روی سیستم کاربر کار کرده میخواهید برای بنده که داخل این تایک هستش رو http://barnamenevis.org/showthread.php?554595-%D8%AF%D9%81%D8%AA%D8%B1-%D8%AA%D9%84%D9%81%D9%86-%D8%A8%D8%A7-%D8%A7%D9%85%DA%A9%D8%A7%D9%86%D8%A7%D8%AA-%D8%A7%D8%A8%D8%B2%D8%A7%D8%B1%DB%8C-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87-%D9%88-%D9%87%D9%85%DA%86%D9%86%DB%8C%D9%86-%D8%A7%D9%85%DA%A9%D8%A7%D9%86-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D9%BE%DB%8C%D8%A7%D9%85%DA%A9-%D9%88-%DA%A9%D8%A7%D9%87%D8%B4-%D8%B4%D8%AF%DB%8C%D8%AF-%DA%A9%D8%AF%D9%86%D9%88%DB%8C%D8%B3%DB%8C دانلود تست کنید ببنید اون مشکل هستش یا خیر چون روی سیستم تحت شبکه برنامه نوشتم و هرکدامشون یک ورژن مختلف آفیس داشتن روی همه شون جواب داد و خروجی اکسل از اطلاعات گرفتم توسط دیتاگرید ویو و خطا نداد میخواهید این سورس تست کنید ببنید باز اون خطا میده یا نه

mmbguide
چهارشنبه 04 اردیبهشت 1398, 13:59 عصر
سلام. جدای از ورژن dll، آیا تنها همین dll کنار برنامم باشم دیگر نیازی نیست در سیستم کاربر اکسل نصب شده باشه؟ چون میخوام یه برنامه Portable درست کنم و کاربر دیگه درگیر نیب افیس و یا اکسل نشه. ممنون

davidrobert
پنج شنبه 05 اردیبهشت 1398, 11:41 صبح
سلام. جدای از ورژن dll، آیا تنها همین dll کنار برنامم باشم دیگر نیازی نیست در سیستم کاربر اکسل نصب شده باشه؟ چون میخوام یه برنامه Portable درست کنم و کاربر دیگه درگیر نیب افیس و یا اکسل نشه. ممنون

برنامه آفیس که باید روی سیستم مشتری نصب باشه من اون دستور نوشتم و با اکسل های که گفتم تست گرفتم هم روی سیستم خودم و هم مشتری کار کرده بدون مشکل و بنده نرم افزار Setup نیست بلکه فایل exe به مشتری میدم چون حوصه ساخت ستاپ ندارم همون فایل Exe قبلش کدگزاری و کدهام مخفی میکنم و فایل مخفی شده کدهام روی سیستمشون میریزم. و میگم فایل روی سیستم های دیگه شون خودشون کپی کنن درست به همین ریوال اون فایل کپی میکنن و روی سیستم هاشون و از خروجی اکسل هم استفاده میکنن بدون هیچ مشکلی

mmbguide
پنج شنبه 05 اردیبهشت 1398, 14:35 عصر
البته من قصد دارم تنها از توابع اکسل استفاده کنم. بجای نوشتن توابع پیچیده میخوام از توابع اکسل استفاده کنم و خروجی اون رو در برنامه خودم نمایش بدم. آیا حتما باید اکسل نصب شده باشه یا dll بالا کفایت میکنه؟ مرسی

NasimBamdad
شنبه 07 اردیبهشت 1398, 10:54 صبح
درود فراوان

از قسمت Nuget ها فایل مربوط به Excel را دانلود کردم و در سیستم خودم کار می کنه ، اما در سیستم مشتری اررور میده و اکسل 2016 هم نصب هست.

اررور رو پیوست کردم ،

لیـــــــنک فایل آررور (http://sepgostar.ir/err1.jpg)

mr.sirwan
شنبه 07 اردیبهشت 1398, 11:04 صبح
درود فراوان

از قسمت Nuget ها فایل مربوط به Excel را دانلود کردم و در سیستم خودم کار می کنه ، اما در سیستم مشتری اررور میده و اکسل 2016 هم نصب هست.

اررور رو پیوست کردم ،

لیـــــــنک فایل آررور (http://sepgostar.ir/err1.jpg)

فایل پروژه تون رو obfuscate کردین؟

NasimBamdad
شنبه 07 اردیبهشت 1398, 11:05 صبح
فایل پروژه تون رو obfuscate کردین؟
بله با Smart Assembly

NasimBamdad
شنبه 07 اردیبهشت 1398, 11:09 صبح
الان به حالت عادی بدون کد گزاری این کار کردم و مشکل حل شد . راهی داره بگیم فقط این قسمت رو code نکن ؟ یا باید مثل به فایل dll بفرستیمش به برنامه و فراخوانی بشه

mr.sirwan
شنبه 07 اردیبهشت 1398, 11:13 صبح
تنها کاری که لازمه انجام بدین اینه که توی پروژه تون رفرنس مربوط به excel رو انتخاب و از پنجره properties پراپرتی Embed interop types رو برابر false قرار بدین

NasimBamdad
شنبه 07 اردیبهشت 1398, 11:27 صبح
این کار انجام دادم و این پیغام خطا رو داد

لیـــنک (http://sepgostar.ir/err2.png)

mr.sirwan
شنبه 07 اردیبهشت 1398, 11:59 صبح
cast رو بصورت صریح (explicit) انجام بدین

NasimBamdad
شنبه 07 اردیبهشت 1398, 12:06 عصر
انجام شد و حل شد اون موضوع فقط یه Error مونده که لینکش گذاشتم ، واقعا ممنونم از وقتی که گذاشتید

لیــــــــنک (http://sepgostar.ir/err3.png)

NasimBamdad
شنبه 07 اردیبهشت 1398, 12:21 عصر
مقدار Value حذف کردم ، مشکل حل شد .



excelFile.Cells[i, j] = info.Rows[i-2][j-1].ToString();

mr.sirwan
شنبه 07 اردیبهشت 1398, 12:25 عصر
تایپ excelfile چیه؟ این کست رو تست کنین ببینین مشکل برطرف میشه؟
((Excel.Range)excelFile.Cells[i,j]).Value = ....