PDA

View Full Version : مبتدی: ذخیره یک دیتاگرید در Excel



mansoooreh
سه شنبه 18 خرداد 1389, 09:04 صبح
سلام
من یک دیتاگرید دارم که میخوام اگر یک نفر کلید تبدیل به Excel رو زد بره و تمام دیتاگرید رو در Excel بریزه، چند تا نمونه در سایت دیدم ولی همش خطای old format میده:گریه:
کسی نظری داره؟

super_sonic
سه شنبه 18 خرداد 1389, 09:12 صبح
سلام
راستش منم همين مشكل و دارم

azarsrv
چهارشنبه 19 خرداد 1389, 13:41 عصر
سلام ، تو control panel آیتم Regional and language option توی تب Regional Option بجای farsi باید English رو انتخاب کنی

(تشکر یادت نره)

mansoooreh
پنج شنبه 20 خرداد 1389, 08:52 صبح
سلام با تشکر،
حالا فرض کن من یک application نوشتم و دادم به یکی، اون که نباید تمام تنظیمات سیستمش رو عوض کنه تا برنامه من رو run کنه، باید یک راه حلی باشه که بدون تغییر در تنظیمات سیستم این کار رو انجام بده.
باز هم ممنون که جواب دادی:تشویق:

super_sonic
پنج شنبه 20 خرداد 1389, 09:07 صبح
سلام يك راهش اينه كه از report viewer استفاده كني هم خروجي exel داره وهم pdf

ramin_ramin
پنج شنبه 20 خرداد 1389, 09:31 صبح
اگه دوستان مایل باشند من کدش رو بگذارم
این تا حدود یک ماه مشکل من بود و من بعد از یک ماه طریقه انجام آن را پیدا کردم
من منتظر هستم اگر دوستان مایل و آنلاین باشند همین الان بگذارم

super_sonic
پنج شنبه 20 خرداد 1389, 09:35 صبح
سلام
اگه كدش رو بزاريد استفاده ميكنيم.
ممنون

ramin_ramin
پنج شنبه 20 خرداد 1389, 10:22 صبح
برای شروع کامپوننت dev express رو روی ویژوال استودیوی خودتان نصب کنید
سپس یک gridcontrol از toolbox به فرم خود درگ دراپ نمائید و سپس این کدها رو به برنامه خود اضافه نمائید



private void button3_Click(object sender, EventArgs e)
{
string fileName = ShowSaveFileDialog("Microsoft Excel Document", "Microsoft Excel|*.xls");
if (fileName != "")
{
ExportTo(new ExportXlsProvider(fileName));
OpenFile(fileName);
}
}
private string ShowSaveFileDialog(string title, string filter)
{
SaveFileDialog dlg = new SaveFileDialog();
string name = Application.ProductName;
int n = name.LastIndexOf(".") + 1;
if (n > 0) name = name.Substring(n, name.Length - n);
dlg.Title = "Export To " + title;
dlg.FileName = name;
dlg.Filter = filter;
if (dlg.ShowDialog() == DialogResult.OK) return dlg.FileName;
return "";
}
private void OpenFile(string fileName)
{
if (XtraMessageBox.Show("Do you want to open this file?", "Export To...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
try
{
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = fileName;
process.StartInfo.Verb = "Open";
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
process.Start();
}
catch
{
DevExpress.XtraEditors.XtraMessageBox.Show(this, "Cannot find an application on your system suitable for openning the file with exported data.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void ExportTo(IExportProvider provider)
{
Cursor currentCursor = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;
this.FindForm().Refresh();
BaseExportLink link = gridView1.CreateExportLink(provider);
(link as GridViewExportLink).ExpandAll = false;
link.ExportTo(true);
provider.Dispose();
Cursor.Current = currentCursor;
}
بدیهی است که شما باید gridcontrol خود را که دقیقا مثل datagridview هست بایند کرده باشید


button3_Click هم کلیدی است که کار Export را انجام میدهد و
اما ShowSaveFileDialog متدی شبیه به openfiledialog دات نت است
اما OpenFile متد باز کردن فایل اکسل پس از پر کردن آن است
اما ExportTo متد انتقال است
امید وارم حالش را ببرید
هرکس متوجه نشد اعلام کنه
فقط فقط فقط فقط تشکر یادتون نره

amin1000
یک شنبه 13 تیر 1389, 12:10 عصر
privatevoid button3_Click(object sender, EventArgs e)
{
string fileName = ShowSaveFileDialog("Microsoft Excel Document", "Microsoft Excel|*.xls");
if (fileName != "")
{
ExportTo(newExportXlsProvider(fileName));
OpenFile(fileName);
}
}
privatestring ShowSaveFileDialog(string title, string filter)
{
SaveFileDialog dlg = newSaveFileDialog();
string name = Application.ProductName;
int n = name.LastIndexOf(".") + 1;
if (n > 0) name = name.Substring(n, name.Length - n);
dlg.Title = "Export To " + title;
dlg.FileName = name;
dlg.Filter = filter;
if (dlg.ShowDialog() == DialogResult.OK) return dlg.FileName;
return"";
}
privatevoid OpenFile(string fileName)
{
if (XtraMessageBox.Show("Do you want to open this file?", "Export To...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
try
{
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = fileName;
process.StartInfo.Verb = "Open";
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
process.Start();
}
catch
{
DevExpress.XtraEditors.XtraMessageBox.Show(this, "Cannot find an application on your system suitable for openning the file with exported data.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
privatevoid ExportTo(IExportProvider provider)
{
Cursor currentCursor = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;
this.FindForm().Refresh();
BaseExportLink link = gridView1.CreateExportLink(provider);
(link asGridViewExportLink).ExpandAll = false;
link.ExportTo(true);
provider.Dispose();
Cursor.Current = currentCursor;
}

نیما حتمی
یک شنبه 13 تیر 1389, 14:36 عصر
منظورتون از dev express چیه؟نمی فهمم دوست عزیز