C# ile Bul Değiştir

tropique

Altın Üye
Katılım
15 Kasım 2012
Mesajlar
82
Excel Vers. ve Dili
Excel 365 English,
Altın Üyelik Bitiş Tarihi
12-06-2025
Merhaba,
Kullandığımız bir programdan excel dosyaları ile çıktı alıyorum. Bunun içinde tarihler gg/aa/yyyy biçiminde gözükse de bunları tarih olarak değil metin olarak görüyor. tarihe dönüştürmek için bul ve değiştir yapıp "/" karakterini kendisi ile değiştiriyorum. Ardından kaydediyorum. Bu dosya da yine farklı excel dosyalarına kaynak oluşturuyor.

Ancak bunun gibi fazla sayıda dosya var. Bunları tek tek açıp içini değiştirip kaydedip kapatmak için bir c# ile console uygulaması için kod yazamaya çalışıyorum. Bir yere kadar geldim tıkandım. Bul değiştir kısmında taradığım kaynakları anlayamadım, bu konuda yardım edebilir misiniz?

Kod:
string path = Directory.GetCurrentDirectory(); [COLOR="SeaGreen"]// Dosya kendi bulunduğu klasörde çalışacak[/COLOR]

Console.WriteLine("Programın çalışacağı klasör:" + "\n");
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine(path + "\n"); [COLOR="SeaGreen"]// klasör adını ekrana yazdırma - bilgi amaçlı[/COLOR]
Console.ResetColor();

Application xlApp = new Excel.Application();

for (int i = 0 ; i < Fleet.Length ; i++) [COLOR="SeaGreen"]// Fleet adında önceden tanımlı sabit dosya adlarını (xls/xlsx uzanıtısı olmadan) içeren bir string dizi mevcut[/COLOR]
{
xlApp.Visible = true;
string xlWorkBook = path + @"\" + Fleet[i] + @".xlsx"; [COLOR="SeaGreen"]// Tüm dosyaları tara[/COLOR]

[COLOR="SeaGreen"]// Dosyayı aç[/COLOR]
xlApp.Workbooks.Open(xlWorkBook);
Worksheet xlWorkSheet = new Excel.Worksheet();

[COLOR="SeaGreen"]// Dosyayı işle: tüm hücrelerdeki tüm "/" karakterleri kendisi ile değiştir[/COLOR]
#region Process Workbook(s)




[B][COLOR="Red"]// bu kısım bul değiştir kodlarını içermeli[/COLOR][/B]



#endregion

[COLOR="seagreen"]// Kaydet ve kapat[/COLOR]
#region Save and Close Workbook(s)
xlApp.Application.ActiveWorkbook.Save();
xlApp.Workbooks.Close();
#endregion
}

Teşekkür ederim.
 

tropique

Altın Üye
Katılım
15 Kasım 2012
Mesajlar
82
Excel Vers. ve Dili
Excel 365 English,
Altın Üyelik Bitiş Tarihi
12-06-2025
Sonuca ulaştım. Kod E sütununda 4. satırdan başlayarak E sütunudaki son değere kadar çalışıyor. Bul değiştir yerine hücre değerini / işaretine göre ayırıp ardından tekrar birleştiriyor.

Kod:
  #region Last Row and Column
                int row = xlApp.Application.Cells[4 , 4].End(XlDirection.xlDown).Row; // Row count
                int col = xlApp.Application.Cells[4 , 4].End(XlDirection.xlToRight).Column; // Column count
                #endregion

          for (int r = 4 ; r <= row ; r++)
                {
                    try
                    {
                        Range rng = xlApp.Application.Cells[r , "E"];

                        string strDate = rng.Value;
                        string[] arrDate = strDate.Split('/');
                        DateTime newDate = new DateTime(Convert.ToInt32(arrDate[2]) , Convert.ToInt32(arrDate[1]) , Convert.ToInt32(arrDate[0]));

                        rng.Value = newDate;
                    }
                    catch
                    {
                        continue;
                    }
                }
                xlApp.Application.ActiveWorkbook.Save();
 
Üst