PDA

View Full Version : سوال: مشکل در خروجی گرفتن از گرید در Excel



ostovarit
سه شنبه 07 اردیبهشت 1389, 14:19 عصر
با سلام و خسته نباشید
کلاس زیر از گرید ویو خروجی میگیره و در Excel نمایش میده...
برای اطلاعاتی که لاتین تایپ شده در گرید ویو مشکلی نداره و فایل اکسلی مطابق اون میده...
ولی اطلاعات فارسی رو در هم میکنه و نوشته ها در اکسل قابل خواندن نیست!

بعد از اضافه کردن کلاس به پروژه با متد زیر اون رو در فرمتون صدا بزنید:



try
{
GenericFormattedExcel2003Export gExp = new GenericFormattedExcel2003Export("CSV",dataGridView1,Theme.CSV, null,null ,null);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

اگر کلاس دیگه ای برای این منظور دارید که حتما از داده های فارسی و گرید ویو پشتیبانی میکنه لطفا آپلود کنید...

برای اینکه اطلاعات فارسی بعد از Export به درستی در اکسل نمایش داده بشه چه باید کرد؟
راه حل، کد، پیشنهاد و...

ostovarit
چهارشنبه 08 اردیبهشت 1389, 16:56 عصر
با سرچ هایی که تو اینترنت زدم 90% کدهای موجود در اینترنت در رابطه با خروجی به اکسل مشکل داشتند
مثلا dll های لازم ضمیمه نشده بود یا اینکه برای office 2003 بود یا فارسی رو ساپورت نمیکرد یا کلا مشکل داشت!
یکی از نمونه کد هایی که پیدا کردم تغریبا از بقیه بهتر بود ولی باز هم مشکلاتی داشت که بر طرف کردم اینجا آپلود میکنم ...

اگر سوالی ، مشکلی و... پیش اومد بفرمایید تا بررسی بشه

بعد از اضافه کردن dll به پروژتون متد زیر رو ایجاد کنید:



private void ExportToExcel(ExcelExporterFormat format, string fileName)
{

excelExporter1.DataSource = ds.RegStore;
excelExporter1.LoadStyle(dataGridView1);

excelExporter1.Format = format;
excelExporter1.SaveXls(fileName);
}


بعد در رویداد مورد نظر فراخوانی کنید :



private void button2_Click(object sender, EventArgs e)
{
if (saveFileDialog1.ShowDialog(this) == DialogResult.OK)
{
ExportToExcel(ExcelExporterFormat.Xlsx, saveFileDialog1.FileName);
}
}

madoki
سه شنبه 09 شهریور 1389, 21:44 عصر
میشه بگید چطوری فایل dll اضافه میشه؟
وقتی این کد رو اجرا میکنم روی ExcelExporterFormatخطا میده.میگه namespaceآن موجود نیست.باید namespaceخاصی اضافه بشه؟

ostovarit
سه شنبه 09 شهریور 1389, 22:12 عصر
میشه بگید چطوری فایل dll اضافه میشه؟
وقتی این کد رو اجرا میکنم روی ExcelExporterFormatخطا میده.میگه namespaceآن موجود نیست.باید namespaceخاصی اضافه بشه؟

در بالای صفحه دو خط زیر رو اضافه کنید ... :



using www.serviciipeweb.ro.iafblog.ExportDLL;
using www.serviciipeweb.ro.iafblog.ExportHierarchical;

ali_autumnal
سه شنبه 09 شهریور 1389, 22:46 عصر
اینجا منظور ار ds چیه؟

excelExporter1.DataSource = ds.RegStore;
--------------------
در اینجا چی رو باید بهش Source معرفی کنم. البته بجرز دیتا گریدی که در لاین بعدی بهش معرفی کردید.

ostovarit
سه شنبه 09 شهریور 1389, 22:49 عصر
اینجا منظور ار ds چیه؟

excelExporter1.DataSource = ds.RegStore;


من یک table به نام RegStore در DataSet دارم ... که مشخص کردم اطلاعات این جدول رو برام خروجی بگیره ... شما اگر دیتاست رو داخل کد میسازید باید از این استفاده کنید:



excelExporter1.DataSource = ds.Tables[0];

در اصل خروجی از دیتاستی که گرید نشون میده گرفته میشه ...

ali_autumnal
سه شنبه 09 شهریور 1389, 23:04 عصر
کلاسی که در تایپیک اول گذاشته بودید همونطور که گفتید هیچ کلمه فارسی رو درست نشون نداد.

اما dll های موجود فوقالعاده بودند. دستون درد نکنه. بدون ایراد اجرا شد و تبدیل کرد.

ostovarit
سه شنبه 09 شهریور 1389, 23:08 عصر
کلاسی که در تایپیک اول گذاشته بودید همونطور که گفتید هیچ کلمه فارسی رو درست نشون نداد.

اما dll های موجود فوقالعاده بودند. دستون درد نکنه. بدون ایراد اجرا شد و تبدیل کرد.

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

ali_autumnal
سه شنبه 09 شهریور 1389, 23:21 عصر
خواهش میکنم اگر راهی برای خروجی گرفتن از گرید به فرمت pdf که فارسی رو ساپورت کنه دارید یا دیدید به من اطلاع بدید با تشکر ...

این تایپیک رو یه نگاه بنداز
http://www.barnamenevis.org/forum/showthread.php?t=35533

ostovarit
چهارشنبه 10 شهریور 1389, 00:08 صبح
دوست عزیز من برای اینکار از کد زیر استفاده می کنم و هیچ مشکلی نداره و فارسی هم اکسپورت می کنه




این کد واسه اکسله؟!
تو خروجی گرفتن از اکسل مشکلی نیست ...!
کلاسها و dll های لازم attach شده !
در حال حاضر دنبال راهی برای خروجی گرفتن از اطلاعات با فرمت pdf هستم !
با تشکر !

madoki
یک شنبه 14 شهریور 1389, 09:44 صبح
در بالای صفحه دو خط زیر رو اضافه کنید ... :



using www.serviciipeweb.ro.iafblog.ExportDLL;
using www.serviciipeweb.ro.iafblog.ExportHierarchical;


این دو خط رو که مینویسم نمیشناسه:گریه: باید در قسمت refrence چیزی اضافه کنم؟
ضمنا برنامه تحت windows نوشته شده.

ostovarit
یک شنبه 14 شهریور 1389, 10:10 صبح
این دو خط رو که مینویسم نمیشناسه:گریه: باید در قسمت refrence چیزی اضافه کنم؟
ضمنا برنامه تحت windows نوشته شده.

dll باید اضافه کنی دیگه

madoki
یک شنبه 14 شهریور 1389, 12:00 عصر
تمام کارایی که گفتینو کردم اما نمیشه.روی excelexporterformatخطا میده.
2 تا dllکه دادینو اضافه کردم ولی این دو تا رو نمیشناسه.

using www.serviciipeweb.ro.iafblog.ExportDLL (http://www.serviciipeweb.ro.iafblog.ExportDLL)
using www.serviciipeweb.ro.iafblog.ExportHierarchical (http://www.serviciipeweb.ro.iafblog.ExportHierarchical);

چیز دیگه هم لازمه اضافه بشه؟
ممنون میشم

ostovarit
پنج شنبه 22 مهر 1389, 00:34 صبح
دوستان عزیز من همین کار رو میخوام با اطلاعات داخل گرید بکنم و دیتابیسی در کار نیست کسی راه حلی داره که به جای خط :


ds.Tables[0].ExportTo(ExportToFormat.Word2003XML, path + "MyDoc.doc");


چه چیزی میتونم جایگزین کنم؟؟؟

گل نرگس
جمعه 07 مرداد 1390, 10:48 صبح
با سلام
من اين كدا رو اجرا كردم ولي بعد از انجام كار فايل اكسلمو باز نميكنه ميگه excel found unreadable content in file.xlsx
نظر شما چيه؟ بايد چه كارش كنم؟

گل نرگس
جمعه 07 مرداد 1390, 10:54 صبح
تمام کارایی که گفتینو کردم اما نمیشه.روی excelexporterformatخطا میده.
2 تا dllکه دادینو اضافه کردم ولی این دو تا رو نمیشناسه.

using www.serviciipeweb.ro.iafblog.ExportDLL (http://www.serviciipeweb.ro.iafblog.ExportDLL)
using www.serviciipeweb.ro.iafblog.ExportHierarchical (http://www.serviciipeweb.ro.iafblog.ExportHierarchical);

چیز دیگه هم لازمه اضافه بشه؟
ممنون میشم


اونا رو پاك كن اين كدو اضافه كن:
using DanielRieck.ExcelExporter;