Recent Posts

Otomatik Excel Rapor Batch | C#

Otomatik Excel Rapor Batch | C#

Merhaba, zaman zaman bir seferlik raporlar isteniyor.Siz de SQL’de bir sorgu yazıp sonucu excele kopyalayıp gönderiyorsunuz.Sonra o raporu ayda bir istemeye başlıyorlar, siz o yazdığınız scripti tekrar bir yerlerde bulup gönderiyorsunuz.Sonra bu düzenli excel olarak gelsin diyorlar.O zaman da ufak bir konsol uygulaması yazıyordum.Ancak sonra 

Manuel ZPL Etiket Basım | C#

Manuel ZPL Etiket Basım | C#

Merhaba, bir depoda Zebra Printer için etiket yazma programına ihtiyaç duyuldu. Kullanıcı, sağını solunu da kendisi düzeltebilsin diye, basit bir uygulama yazdım. Zebra yazıcının kendine has bir dili var; adı ZPL. Zebra Printer Language. Yazdığınız ZPL kodunun etikette üç aşağı beş yukarı nasıl gözükeceğine de 

Biyolojik Saat Ve Uygun Ülke | Eğlence

Biyolojik Saat Ve Uygun Ülke | Eğlence

Merhaba, her insanda bir biyolojik saat olduğunu söylüyorlar.
Ayrıca her insanın farklı bir uyku düzeni de var.
Kimi geç yatar, kimi az uyur,..vs.
Aklıma şöyle bir proje geliyor:
Dünyadaki ülkeleri -bazı büyük ülkeler için bölgeleri de diyebiliriz- gündüz/gece uzunluğu, güneşin doğuşu/batışı gibi bilgilere göre sınıflandıralım.
Kullanıcıya, “Saat kaçta yatarsın?”, “Saat kaçta kalkarsın?”,..vb sorular yöneltelim.
Sonra sistem bize desin ki: “Bu bilgilere göre sen Norveç adamısın. Sen Gana’da yaşasan çok mutlu olursun.”
Belki de herkes doğru yerini bulsa, Dünya çok daha yaşanabilir bir yer olabilir… 🙂

Selamlar.

Aralık Kullanarak Switch-Case | C#

Aralık Kullanarak Switch-Case | C#

Merhaba, tek bir değerle karşılaştırarak switch-case yapısı olduğu gibi SQL’deki gibi başka şartlar da kullanılabiliyormuş. Şu şekildeymiş: Selamlar.

Javascript > WebApi Cross-Origin Ayarı| C#

Javascript > WebApi Cross-Origin Ayarı| C#

Merhaba, API’leri şimdiye kadar hiç Ajax ile tetiklememiştim.Öyle bir ihtiyaç oldu ve hata aldım.Hatanın da detayı yok maalesef.status 0 dönüyor. Biraz araştırdıktan sonra çözümü buldum:Package Manage Console’dan aşağıdaki paketi yüklüyoruz: Sonra WebApiConfig.cs’ye şu satırı ekliyoruz: Sonra da ilgili Controller’ın tepesine de şunu ekliyoruz: Selamlar.

EPPlus İle Makrolu Excel Oluşturma | C#

EPPlus İle Makrolu Excel Oluşturma | C#

Merhaba, excel işlemlerinde EPPlus kullanıyorum.
Her ihtiyacımı görüyor sağolsun.
Geçenlerde de, içerisinde makro barındıran bir excele ihtiyacım oldu.
Baktım ona da destekleri varmış.
Bir kez daha takdir ettim.

Excel oluşturduğum metodu tümüyle paylaşıyorum.

Makro eklediğim kısım en altta.

public static byte[] OlusturExcel<T>(IEnumerable<T> liste, string calismaSayfasiAdi)
{
	byte[] sonuc;
	using (ExcelPackage pck = new ExcelPackage())
	{
		var ws = pck.Workbook.Worksheets.Add(calismaSayfasiAdi);
		// Once basliklari yazalim.
		IList<PropertyInfo> properties = typeof(T).GetProperties().ToList();
		int kolonSayac = 1;
		int satirSayac = 1;
		foreach (PropertyInfo prop in properties)
		{
			string baslik = prop.Name;
			ws.Cells[satirSayac, kolonSayac].Value = baslik;
			ws.Cells[satirSayac, kolonSayac].Style.Font.Bold = true;
			ws.Cells[satirSayac, kolonSayac].Style.Font.Name = "Tahoma";
			ws.Cells[satirSayac, kolonSayac].Style.Font.Size = 10;
			ws.Cells[satirSayac, kolonSayac].Style.Fill.PatternType = ExcelFillStyle.Solid;
			ws.Cells[satirSayac, kolonSayac].Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.AliceBlue);
			kolonSayac++;
		}
		// Sonra iceriklere gecelim.
		satirSayac = 2;
		foreach (T item in liste)
		{
			kolonSayac = 1;
			foreach (PropertyInfo prop in properties)
			{
				object propValue = prop.GetValue(item, null);
				if (propValue == null)
				{
					ws.Cells[satirSayac, kolonSayac].Value = "";
				}
				else
				{
					TypeCode typeCode = Type.GetTypeCode(prop.PropertyType);
					switch (typeCode)
					{
						case TypeCode.Int32:
							ws.Cells[satirSayac, kolonSayac].Value = Convert.ToInt32(propValue.ToString().Replace(".", ","), CultureInfo.GetCultureInfo("tr-TR"));
							break;
						case TypeCode.Decimal:
							ws.Cells[satirSayac, kolonSayac].Value = Convert.ToDecimal(propValue.ToString().Replace(".", ","), CultureInfo.GetCultureInfo("tr-TR"));
							break;
						default:
							ws.Cells[satirSayac, kolonSayac].Value = propValue.ToString().Trim();
							break;
					}
				}
				ws.Cells[satirSayac, kolonSayac].Style.Font.Name = "Tahoma";
				ws.Cells[satirSayac, kolonSayac].Style.Font.Size = 9;
				kolonSayac++;
			}
			satirSayac++;
		}
		ws.DefaultRowHeight = 25;
		ws.Cells.AutoFitColumns();				
		// Makro ekledigim kisim iste burasi...
		pck.Workbook.CreateVBAProject(); 
		pck.Workbook.CodeModule.Name = "Module1";
		StringBuilder bfrMakroKod = new StringBuilder();
		bfrMakroKod.Append(@"Function ZamkinosEPPlusTest() As Boolean");
		bfrMakroKod.Append(Environment.NewLine);
		bfrMakroKod.Append(@"    MsgBox ""Zamkinos test!""");				
		bfrMakroKod.Append(Environment.NewLine);
		bfrMakroKod.Append(@"    ZamkinosEPPlusTest = False");				
		bfrMakroKod.Append(Environment.NewLine);
		bfrMakroKod.Append(@"End Function");
		bfrMakroKod.Append(Environment.NewLine);
		pck.Workbook.CodeModule.Code = bfrMakroKod.ToString();
		sonuc = pck.GetAsByteArray();
	}
	return sonuc;
}

Selamlar.

Selenium ChromeDriver Hatası | C#

Selenium ChromeDriver Hatası | C#

Merhaba, web sitelerinden bazı bilgileri alabilmek için Selenium kütüphanesini kullanarak bir uygulama geliştirmiştim.Ancak uygulamanın çalıştığı bilgisayardaki Chrome, her güncellendiğinde sistemdeki versiyonla programın kullandığı ChromerDriver aynı değil hatası veriyordu. Ben de biraz araştırma ve biraz da şansımın yardımıyla şu yöntemi buldum: Bu şekilde yolu sabit verince