C# Excel'den Not Defterine Veri Aktarmam Gerek!

C# 'ta kullanıcıdan Excel dosyasını seçtirip e-posta ve linkleri filtreleyerek not defterine aktarmam gerekiyor.

Ama nasıl yapacağımı bilemiyorum.

Merhaba,

Senin için EXCEL'den veri çekip, Not defterine veri aktarımını ufak bir programcık ile yazdım.

.xls ve yeni nesil .xlsx olan formattaki dosyayı seçip içeri aktarımı sağladıktan sonra istediğin dizine

savefiledialog ile note defteri formatında kayıt ettirebiliyorsun.

Sadece filtreleme işlemlerini kendin yapman gerekecek, gerekli açıklamaları kodların içinde belirttim.

proje kodu:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ExcelDataReader;

using System.IO;

namespace ExcelCalisma
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog file = new OpenFileDialog();
            file.Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls";  
           // file.FilterIndex = 2;
            file.RestoreDirectory = true;
            file.CheckFileExists = false;
            file.Title = "Excel Dosyası Seçiniz..";
            file.Multiselect = true;
            string DosyaYolu="";
            if (file.ShowDialog() == DialogResult.OK)
            {
                  DosyaYolu = file.FileName;
                string DosyaAdi = file.SafeFileName;
            }

            //Dosyanın okunacağı dizin
            string filePath = DosyaYolu;

            //Dosyayı okuyacağımı ve gerekli izinlerin ayarlanması.
            FileStream stream = File.Open(filePath, FileMode.Open, FileAccess.Read);
            IExcelDataReader excelReader;
            List<string> liste = new List<string>();
            int counter = 0;

            //Gönderdiğim dosya xls'mi xlsx formatında mı kontrol ediliyor.
            if (Path.GetExtension(filePath).ToUpper() == ".XLS")
            {
                //Reading from a binary Excel file ('97-2003 format; *.xls)
                excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
            }
            else
            {
                //Reading from a OpenXml Excel file (2007 format; *.xlsx)
                excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
            }

            //Datasete atarken ilk satırın başlık olacağını belirtiyor.
            
            DataSet result = excelReader.AsDataSet();

            //Veriler okunmaya başlıyor.
            while (excelReader.Read())
            {
                if (counter<1)
                {
                    for (int i = 0; i < excelReader.FieldCount; i++)
                    {
                       richTextBox1.Text += excelReader.GetValue(i) +"\t";
                    }
                    richTextBox1.Text += Environment.NewLine;
                }
                counter++;
             
                //ilk satır başlık olduğu için 2.satırdan okumaya başlıyorum.
                if (counter > 1)
                {
                    for (int i = 0; i < excelReader.FieldCount; i++)
                    {
                        richTextBox1.Text += excelReader.GetValue(i).ToString()+"\t";
                    }
                        
                    

                    //richTextBox1.Text += "\n";

                }
            }

            //Okuma bitiriliyor.
            excelReader.Close();
            //Veriler ekrana basılıyor.
         
        }

        private void button2_Click(object sender, EventArgs e)
        {
            SaveFileDialog save = new SaveFileDialog();
            save.Filter = "Metin Dosyası|*.txt";
            save.OverwritePrompt = true;
            save.CreatePrompt = true;

            if (save.ShowDialog() == DialogResult.OK)
            {
               //Dosya kayıt
                StreamWriter Kayit = new StreamWriter(save.FileName);
                Kayit.WriteLine(richTextBox1.Text);
                Kayit.Close();
            }
        }
    }
}

Proje'yi indirme linki: www.emrecapan.com/ExcelCalisma.zip

Esenlikle.

Cevap Yaz

Cevap yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git