PDA

View Full Version : تبديل گزارشات سي شارپ به اكسل



jmfnima
شنبه 15 مرداد 1390, 10:21 صبح
با سلام به همه دوستان
به چه طريقي ميشه گزارشات سي شارپ رو به اكسل به طريقي تبديل كرد كه با فشردن يك دكمه از يك جدول يا كوئري يا پروسيجر بتونم آنها رو به اكسل تبديل كنم .
لازم به ذكر است كه تبديل به اكسل رو از طريق كريستال ريپورت بلدم .

danial82
شنبه 15 مرداد 1390, 12:04 عصر
اگه از گرید janus استفاده کنی راحت این کارو برات انجام میده

jmfnima
شنبه 15 مرداد 1390, 12:24 عصر
عزيز من اگه از جانوس استفاده نكنيم به چه طريقي بايد عمل كنيم !!

faravaghi
یک شنبه 16 مرداد 1390, 03:16 صبح
سلام،
با این روش شما میتوانید از DataGridView اطلاعات رو به فایل Excel منتقل کنید:

using Microsoft.Office.Interop.Excel;
using System.Globalization;
using System.Threading;

//.....

SaveFileDialog save = new SaveFileDialog();
save.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolde r.Personal);
save.Filter = "Excel Files (*.xls)|*.xls";

if (save.ShowDialog(this) == DialogResult.OK)
{
CultureInfo Oldci = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us");

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 = true;
worksheet = (Worksheet)workbook.Sheets["Sheet1"];
worksheet = (Worksheet)workbook.ActiveSheet;
worksheet.Name = "Exported from gridview";

// Set Format Cell:
((Range)worksheet.Cells).get_Range("A1", "G1");
((Range)worksheet.Cells).EntireRow.AutoFit();
((Range)worksheet.Cells[1, 1]).EntireColumn.NumberFormat = "@";

for (int i = 1; i < DataGridView1.Columns.Count + 1; i++)
{
worksheet.Cells[1, i] = DataGridView1.Columns[i - 1].HeaderText;
}

for (int i = 0; i < DataGridView1.Rows.Count - 1; i++)
for (int j = 0; j < DataGridView1.Columns.Count; j++)
if (DataGridView1.Rows[i].Cells[j].Value == null)
worksheet.Cells[i + 2, j + 1] = "";
else
worksheet.Cells[i + 2, j + 1] = DataGridView1.Rows[i].Cells[j].Value.ToString();

workbook.SaveAs(save.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();
}

jmfnima
یک شنبه 16 مرداد 1390, 09:58 صبح
ممنون دوست عزيز

Esmail Solhkhah
دوشنبه 17 مرداد 1390, 23:12 عصر
با سلام به همه دوستان
به چه طريقي ميشه گزارشات سي شارپ رو به اكسل به طريقي تبديل كرد كه با فشردن يك دكمه از يك جدول يا كوئري يا پروسيجر بتونم آنها رو به اكسل تبديل كنم .
لازم به ذكر است كه تبديل به اكسل رو از طريق كريستال ريپورت بلدم .


تو قسمت
نمونه برنامه های کوچک و مفيد در سي شارپ (http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE)


یه برنامه واسه اکسپورت دیتاگریدویو به اکسل گذاشتم البته با کامپوننته که کامپوننتاشم باهاشه

موفق باشید.