using System;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using Word = Microsoft.Office.Interop.Word;
namespace SinifListesi
{
public partial class WordeAktar : Form
{
public WordeAktar()
{
InitializeComponent();
}
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source = siniflisteleri25.accdb; Jet OLEDB:Database Password = Fatih2541; Mode = ReadWrite");
OleDbCommand sorgu;
OleDbDataReader veriler;
private void SinifCek()
{
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
sorgu = new OleDbCommand
{
CommandText = "SELECT * from siniflar order by sin_id asc",
Connection = conn
};
veriler = sorgu.ExecuteReader();
while (veriler.Read())
{
ComboBox1.Items.Add(veriler["sinifi"].ToString());
ComboBox1.ValueMember = "sinifi";
ComboBox1.DisplayMember = "sinifi";
}
veriler.Close();
sorgu.Dispose();
}
catch (Exception hata)
{
MessageBox.Show("Islem Sirasinda Hata Olustu." + hata.Message);
}
}
public void Export_Data_To_Word(DataGridView DGV, string filename)
{
if (File.Exists(filename))
{
File.Delete(filename);
}
Word.Document oDoc = new Word.Document();
oDoc.Application.Visible = true;
if (DGV.Rows.Count != 0)
{
int RowCount = DGV.Rows.Count;
int ColumnCount = DGV.Columns.Count;
Object[,] DataArray = new object[RowCount + 1, ColumnCount + 1];
//add rows
int r = 0;
for (int c = 0; c <= ColumnCount - 1; c++)
{
if (DGV.Columns[c].Visible) // Check if the column is visible
{
for (r = 0; r <= RowCount - 1; r++)
{
DataArray[r, c] = DGV.Rows[r].Cells[c].Value;
} //end row loop
} //end column loop
}
//page orintation
oDoc.PageSetup.Orientation = Word.WdOrientation.wdOrientLandscape;
dynamic oRange = oDoc.Content.Application.Selection.Range;
string oTemp = "";
for (r = 0; r <= RowCount - 1; r++)
{
for (int c = 0; c <= ColumnCount - 1; c++)
{
oTemp = oTemp + DataArray[r, c] + "\t";
}
}
//table format
oRange.Text = oTemp;
object Separator = Word.WdTableFieldSeparator.wdSeparateByTabs;
object ApplyBorders = true;
object AutoFit = true;
object AutoFitBehavior = Word.WdAutoFitBehavior.wdAutoFitContent;
oRange.ConvertToTable(ref Separator, ref RowCount,
ref ColumnCount,
Type.Missing, Type.Missing,
ref ApplyBorders,
Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing,
Type.Missing, ref AutoFit,
ref AutoFitBehavior, Type.Missing);
oRange.Select();
oDoc.Application.Selection.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle; //tablo çizgisi
oDoc.Application.Selection.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleSingle; // tablo çizgisi
oDoc.Application.Selection.Tables[1].Select();
oDoc.Application.Selection.Tables[1].Rows.AllowBreakAcrossPages = 0;
oDoc.Application.Selection.Tables[1].Rows.Alignment = 0;
oDoc.Application.Selection.Tables[1].Rows[1].Select();
oDoc.Application.Selection.InsertRowsAbove(1);
oDoc.Application.Selection.Tables[1].Rows[1].Select();
//header row style
oDoc.Application.Selection.Tables[1].Rows[1].Range.Bold = 1;
oDoc.Application.Selection.Tables[1].Rows[1].Range.Font.Name ="Tahoma";
oDoc.Application.Selection.Tables[1].Rows[1].Range.Font.Size = 14;
//add header row manually
for (int c = 0; c <= DGV.Columns.Count - 1; c++)
{
if (DGV.Columns[c].Visible) // Check if the column is visible
{
oDoc.Application.Selection.Tables[1].Cell(1, c + 1).Range.Text = DGV.Columns[c].HeaderText;
}
}
//table style
oDoc.Application.Selection.Tables[1].Rows[1].Select();
oDoc.Application.Selection.Cells.VerticalAlignment =
Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
//header text
foreach (Word.Section section in
oDoc.Application.ActiveDocument.Sections)
{
Word.Range headerRange =section.Headers[Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range;
headerRange.Fields.Add(headerRange,
Word.WdFieldType.wdFieldPage);
headerRange.Text = "ÖGRENCI BILGILERI";
headerRange.Font.Size = 16;
headerRange.ParagraphFormat.Alignment =
Word.WdParagraphAlignment.wdAlignParagraphCenter;
}
//save the file
oDoc.SaveAs2(filename);
MessageBox.Show("Ögrenci bilgileri word dosyasina aktarildi.");
oDoc.Close();
oDoc.Application.Quit();
}
}
private void WordeAktar_Load(object sender, EventArgs e)
{
SinifCek();
ComboBox1.SelectedIndex = 0;
DGV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
DGV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
DGV.Columns["tcno"].Visible = tcnochk.Checked; // ilk açilista hangi sütunlari getirecegiyle ilgili
DGV.Columns["dtarihi"].Visible = dogchk.Checked;
DGV.Columns["atel"].Visible = atelchk.Checked;
DGV.Columns["btel"].Visible = btelchk.Checked;
DGV.TopLeftHeaderCell.Value = "S.No";
DGV.Columns[0].HeaderText = "T.C.No";
DGV.Columns[1].HeaderText = "Ö.No";
DGV.Columns[2].HeaderText = "Adi";
DGV.Columns[3].HeaderText = "Soyadi";
DGV.Columns[4].HeaderText = "Cinsiyeti";
DGV.Columns[5].HeaderText = "Sinifi";
DGV.Columns[7].HeaderText = "Anne Tel";
DGV.Columns[8].HeaderText = "Baba Tel";
}
private void button1_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Word Documents (*.docx)|*.docx";
sfd.FileName = "Ögrenci Bilgileri.docx";
if (sfd.ShowDialog() == DialogResult.OK)
{
Export_Data_To_Word(DGV, sfd.FileName);
}
}
private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source = siniflisteleri25.accdb; Jet OLEDB:Database Password = Fatih2541; Mode = ReadWrite"))
{
string query = "SELECT tcno,ono,isim,soyisim,cinsiyet,sinifi,dtarihi,atel,btel from ogrencibilgileri25 where sinifi='" + ComboBox1.Text + " '";
OleDbCommand command = new OleDbCommand(query, conn);
conn.Open();
var adapter = new OleDbDataAdapter(command);
var table = new DataTable();
adapter.Fill(table);
DGV.DataSource = table;
conn.Close();
}
}
private void tcnochk_CheckedChanged(object sender, EventArgs e)
{
DGV.Columns["tcno"].Visible = tcnochk.Checked;
}
private void dogchk_CheckedChanged(object sender, EventArgs e)
{
DGV.Columns["dtarihi"].Visible = dogchk.Checked;
}
private void atelchk_CheckedChanged(object sender, EventArgs e)
{
DGV.Columns["atel"].Visible = atelchk.Checked;
}
private void btelchk_CheckedChanged(object sender, EventArgs e)
{
DGV.Columns["btel"].Visible = btelchk.Checked;
}
private void DGV_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
var grid = sender as DataGridView;
var rowIdx = (e.RowIndex + 1).ToString();
var centerFormat = new StringFormat()
{
// right alignment might actually make more sense for numbers
Alignment = StringAlignment.Center,
LineAlignment = StringAlignment.Center
};
var headerBounds = new Rectangle(e.RowBounds.Left, e.RowBounds.Top, grid.RowHeadersWidth, e.RowBounds.Height);
e.Graphics.DrawString(rowIdx, this.Font, SystemBrushes.ControlText, headerBounds, centerFormat);
}
}
}