Bu sınıfta database bağlanıp çektiğiniz verileri exele aktara bilir ve isterseniz mailgonder fonksiyonu yardımıyla mailde göndere bilirsiniz.
NOT: Projenize Microsoft.Office.Interop.Excel i referans olarak eklemelisiniz.
using System;
using System.Reflection;
using System.Net.Mail;
using Excel = Microsoft.Office.Interop.Excel;
namespace serdar
{
public class DBdenExele {
private Excel.Application Excelim;
private Excel.Workbook CalismaKitabi;
private Excel.Worksheet CalismaSayfasi;
public String hata,constr,sqlstr,mailhost,xlsad,benimmailadr;
public DBdenExele()
{ }
public string DBdenExele(string sqls,string cons,string mhost,string xlad,string madd)
{
constr=cons;
sqlstr=sqls;
mailhost=mhost;
xlsad=xlad;
benimmailadr=madd;
}
public bool OkuVeYaz(System.Data.SqlClient.SqlDataReader drr, string CalismaSayfasiIsmi)
{
try
{
Excelim = new Excel.ApplicationClass();
object SalakObje = System.Reflection.Missing.Value;
CalismaKitabi = Excelim.Workbooks.Add(SalakObje);
CalismaSayfasi = (Excel.Worksheet)CalismaKitabi.ActiveSheet;
CalismaSayfasi.Name = CalismaSayfasiIsmi;
int SutunIndex = 1;
int SatirIndex = 2;
// Stunlar Yazlyor.
for (int i = 0; i <drr.FieldCount ; i++)
{
CalismaSayfasi.Cells[1, SutunIndex] ="KOLON_"+Convert.ToString(i);
SutunIndex++;
}
// Satrlar Yazlyor.
while (drr.Read())
{
for (int ci = 0; ci < drr.FieldCount; ci++)
{
//MessageBox.Show(Convert.ToString(ci) + " >>>" + Satir.Cells[ci].Value.ToString());
CalismaSayfasi.Cells[SatirIndex, ci + 1] = drr[ci].ToString();
}
SatirIndex++;
}
CalismaKitabi.SaveAs(xlsad, SalakObje, SalakObje, SalakObje, SalakObje, SalakObje,
Excel.XlSaveAsAccessMode.xlNoChange, SalakObje, SalakObje, SalakObje, SalakObje, SalakObje);
CalismaKitabi.Close(false, SalakObje, SalakObje);
Excelim.Quit();
return true;
}
catch (Exception ex)
{
hata = ex.Message.ToString();
return false;
}
}
public bool VeriTabBaglan()
{
try
{
System.Data.SqlClient.SqlConnection objConn = new System.Data.SqlClient.SqlConnection(constr);
objConn.Open();
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sqlstr, objConn);
System.Data.SqlClient.SqlDataReader dr;
dr = cmd.ExecuteReader();
return OkuVeYaz(dr, "veriler");
}
catch (Exception ex)
{
hata = ex.Message.ToString();
return false;
}
}
private string mailgonder(String mailadr)
{
MailMessage mail = new MailMessage();
try
{
mail.To.Add(mailadr);
mail.From = new MailAddress(benimmailadr);
mail.Subject = "OTOMATK MAIL";
mail.Body = "Bu mail otomatik gnderilmektedir";
mail.Attachments.Add(new Attachment(xlsad));
SmtpClient istemci = new SmtpClient(mailhost);
istemci.Port = 25;
istemci.Host = mailhost;
istemci.EnableSsl = false;
istemci.Send(mail); // Maili gndermeyi deniyoruz.
System.IO.File.Delete(xlsad);
return (mailadr + " e Mail Gnderildi ");
}
catch (Exception ex) // herhangi bir hata olusursa bu durumda onu da yaziyoruz.
{
return ("HATA: " + ex.Message.ToString());
}
}
}
}
NOT: Projenize Microsoft.Office.Interop.Excel i referans olarak eklemelisiniz.
using System;
using System.Reflection;
using System.Net.Mail;
using Excel = Microsoft.Office.Interop.Excel;
namespace serdar
{
public class DBdenExele {
private Excel.Application Excelim;
private Excel.Workbook CalismaKitabi;
private Excel.Worksheet CalismaSayfasi;
public String hata,constr,sqlstr,mailhost,xlsad,benimmailadr;
public DBdenExele()
{ }
public string DBdenExele(string sqls,string cons,string mhost,string xlad,string madd)
{
constr=cons;
sqlstr=sqls;
mailhost=mhost;
xlsad=xlad;
benimmailadr=madd;
}
public bool OkuVeYaz(System.Data.SqlClient.SqlDataReader drr, string CalismaSayfasiIsmi)
{
try
{
Excelim = new Excel.ApplicationClass();
object SalakObje = System.Reflection.Missing.Value;
CalismaKitabi = Excelim.Workbooks.Add(SalakObje);
CalismaSayfasi = (Excel.Worksheet)CalismaKitabi.ActiveSheet;
CalismaSayfasi.Name = CalismaSayfasiIsmi;
int SutunIndex = 1;
int SatirIndex = 2;
// Stunlar Yazlyor.
for (int i = 0; i <drr.FieldCount ; i++)
{
CalismaSayfasi.Cells[1, SutunIndex] ="KOLON_"+Convert.ToString(i);
SutunIndex++;
}
// Satrlar Yazlyor.
while (drr.Read())
{
for (int ci = 0; ci < drr.FieldCount; ci++)
{
//MessageBox.Show(Convert.ToString(ci) + " >>>" + Satir.Cells[ci].Value.ToString());
CalismaSayfasi.Cells[SatirIndex, ci + 1] = drr[ci].ToString();
}
SatirIndex++;
}
CalismaKitabi.SaveAs(xlsad, SalakObje, SalakObje, SalakObje, SalakObje, SalakObje,
Excel.XlSaveAsAccessMode.xlNoChange, SalakObje, SalakObje, SalakObje, SalakObje, SalakObje);
CalismaKitabi.Close(false, SalakObje, SalakObje);
Excelim.Quit();
return true;
}
catch (Exception ex)
{
hata = ex.Message.ToString();
return false;
}
}
public bool VeriTabBaglan()
{
try
{
System.Data.SqlClient.SqlConnection objConn = new System.Data.SqlClient.SqlConnection(constr);
objConn.Open();
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sqlstr, objConn);
System.Data.SqlClient.SqlDataReader dr;
dr = cmd.ExecuteReader();
return OkuVeYaz(dr, "veriler");
}
catch (Exception ex)
{
hata = ex.Message.ToString();
return false;
}
}
private string mailgonder(String mailadr)
{
MailMessage mail = new MailMessage();
try
{
mail.To.Add(mailadr);
mail.From = new MailAddress(benimmailadr);
mail.Subject = "OTOMATK MAIL";
mail.Body = "Bu mail otomatik gnderilmektedir";
mail.Attachments.Add(new Attachment(xlsad));
SmtpClient istemci = new SmtpClient(mailhost);
istemci.Port = 25;
istemci.Host = mailhost;
istemci.EnableSsl = false;
istemci.Send(mail); // Maili gndermeyi deniyoruz.
System.IO.File.Delete(xlsad);
return (mailadr + " e Mail Gnderildi ");
}
catch (Exception ex) // herhangi bir hata olusursa bu durumda onu da yaziyoruz.
{
return ("HATA: " + ex.Message.ToString());
}
}
}
}