PDA

View Full Version : تبدیل گزارش به فایل Excel از بانک sql



raminsalemi
یک شنبه 22 فروردین 1389, 19:22 عصر
با سلام من در برنامم براساس یکسری فیلد گزارش میگیرم و از طریق dataGridView
به کاربر نمایش میدم من این امکان رو میخوام که بشه این گزارش رو به صورت فایلExcelهم به کاربر داده بشه که قابل جابه جایی باشه در صورت امکان لطفاً به من کمک کنید و اگه کسی نمونه برنامه ای داره برام بذاره خیلی ممنونم

ozzy_mra
سه شنبه 24 فروردین 1389, 08:05 صبح
سلام
من از کلاس زیر استفاده می کنم فقط قبلش باید Refrence های ADOX و Microsoft Office 11 object library رو به پروژت اد کنی و همچنین EXcel.exe رو از مسیر نصب اکسلت به رفرنسات اد کنی
و همچنین adodb

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Web;
using System.IO;
using System.Web.UI;
using System.Data.SqlClient;

//refrences to add
//excel.exe from office path
//adodb from .NET
//and
using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;
//must add msadox.dll from c:\\Program Files\Common Files\System\Ado
using ADOX;
using ADODB;
using System.Data.OleDb;

namespace check_Negar
{
class ExportToExcell
{
public void getFile(DataSet ds)
{
try
{
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]);
excelApp.Visible = true;
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;
Range rng5 = excelWorksheet.get_Range("E1", "E1");
rng5.Value2 = "تاریخ به حروف";
rng5.Font.Bold = true;
Range rng6 = excelWorksheet.get_Range("F1", "F1");
rng6.Value2 = "نــــام بــــانک";
rng6.Font.Bold = true;
Range rng7 = excelWorksheet.get_Range("G1", "G1");
rng7.Value2 = "تاریخ چـــــک";
rng7.Font.Bold = true;
Range rng8 = excelWorksheet.get_Range("H1", "H1");
rng8.Value2 = "نام شعبه";
rng8.Font.Bold = true;
Range rng9 = excelWorksheet.get_Range("I1", "I1");
rng9.Value2 = "نام حساب";
rng9.Font.Bold = true;
Range rng10 = excelWorksheet.get_Range("J1", "J1");
rng10.Value2 = "شماره حساب";
rng10.Font.Bold = true;
int i = 1;
foreach (DataRow r in ds.Tables[0].Rows)
{
i++;
string s = i.ToString();
Range r1 = excelWorksheet.get_Range("A" + s, "A" + s);
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 r4 = excelWorksheet.get_Range("D" + s, "D" + s);
r4.Value2 = r[3].ToString();
Range r5 = excelWorksheet.get_Range("E" + s, "E" + s);
r5.Value2 = r[4].ToString();
Range r6 = excelWorksheet.get_Range("F" + s, "F" + s);
r6.Value2 = r[5].ToString();
Range r7 = excelWorksheet.get_Range("G" + s, "G" + s);
r7.Value2 = r[6].ToString();
Range r8 = excelWorksheet.get_Range("H" + s, "H" + s);
r8.Value2 = r[7].ToString();
Range r9 = excelWorksheet.get_Range("I" + s, "I" + s);
r9.Value2 = r[8].ToString();
Range r10 = excelWorksheet.get_Range("J" + s, "J" + s);
r10.Value2 = r[9].ToString();

}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
امیدوارم بدردت بخوره:چشمک:

ozzy_mra
سه شنبه 24 فروردین 1389, 08:06 صبح
و البته مشخصه که باید دیتا ست دیتا گرید ویوتو به تابع این کلاس پاس بدی:لبخندساده:

michael123
سه شنبه 24 فروردین 1389, 09:50 صبح
مرحبا رامين ،
وأنا أتفق معك ، انت على حق ، وذلك بفضل لتقاسم ، مفيدة جدا في الكثير بالنسبة لي ،
يبقيه

raminsalemi
سه شنبه 24 فروردین 1389, 10:05 صبح
دوست عزیز از لطفت ممنون اگر امکان داره یه نمونه برنامه برام در این رابطه بذار با تشکر

ozzy_mra
سه شنبه 24 فروردین 1389, 10:23 صبح
دوست عزیز از لطفت ممنون اگر امکان داره یه نمونه برنامه برام در این رابطه بذار با تشکر

یه کلاس به برنامت اد کن و کد بالا رو توش کپی کن، بعد اونجا که می خوای خروجی به اکسل بگیری یه آبجکت از کلاست بساز و متد رو فراخوانی کن و دیتا ستتو بهش پاس بده یه نمونه کد از برنامه خودم برات می زارم شاید اجرا نشه چون خیلی از قسمتاشو حذف کردم ولی نحوه استفاده از کد ر. می تونی تو فرم گزارشات----->نمایش همه درون دکمه export to excell ببینی

raminsalemi
سه شنبه 24 فروردین 1389, 15:19 عصر
سلام دوست عزیز من برنامه رو اجرا کردم اما errorرومیده

ozzy_mra
چهارشنبه 25 فروردین 1389, 09:02 صبح
سلام دوست عزیز من برنامه رو اجرا کردم اما errorرومیده

سلام
گفتم که اجرا نمیشه چون هم فرماشو حذف کردم و هم فایل دیتا بیسش بهش اد نیست فقط گزاشتم نمونه کدشو نگاه کنی برو تو فرم showall بعد کد دکمه Export to excell رو ببین کلاسشم به همین نامه که می تونی نگاش کنی :لبخند:

raminsalemi
چهارشنبه 25 فروردین 1389, 15:59 عصر
از همه دوستان ممنون مشکلم حل شد:تشویق: