Aceminin C# sorulari

Başlatan z, 30 Mayıs 2012, 08:19:05

brandice5

Şunu dene;

sayi.ToString("0.000").Replace('.', ',');

Mucit23

Excel için
using Microsoft.Office.Core;
using Excel = Microsoft.Office.Interop.Excel;

sınıflarını kullanıyorum

Alıntı yapılan: brandice5 - 26 Nisan 2020, 00:41:19Şunu dene;

sayi.ToString("0.000").Replace('.', ',');


deneyeceğim. Teşekkürler

bocek

Doğrusu:
using System.Globalization;

sayi.ToString("0.000", CultureInfo.CreateSpecificCulture("tr-TR"));
1 ya da 0. işte 'bit'ün mesele..

Mucit23

Selamlar

Bu dediklerinizi denedim ama hiçbiri işe yaramadı.

İşin ilginci Excell'e verileri yazarken Nerde nasıl yazağı belli olmuyor Örneğin ilk 10 Satır 1.234 gibi yazarken sonraki 10 satırı 1,234 gibi bir format ta yazabilyor. Yazılacak metnin türünün kod'da belirtmem gerekiyor.

Excelde Sütüna sağ tıklayıp Hücreleri biçimlendir seçeneğiyle açılan pencerede sütün kategorisini Sayı, Metin Tarih gibi değerler seçebiliyor. İşte bunu kodda nasıl yaparım bulamadım doğru yöntemi.

bocek

Excel'in kafası karışmış galiba.
Ben bir projede şu kütüphaneyi kullandım. Hiç bir sorun yaşamadım.

http://mikesknowledgebase.com/

alternatif link:
https://mikesknowledgebase.azurewebsites.net/pages/csharp/exporttoexcel.htm
1 ya da 0. işte 'bit'ün mesele..

bocek

#275
Örnek kullanım da vereyim tam olsun:
public class klas1
{
 public int herhangibirsayi; 
// burada verdiğimiz değişken isimleri excel'de kolon ismi olarak çıkacak (istersek değiştirebiliriz o ayrı)
public double baskabirsayi;
}
public class klas2
{ 
public string birstring;
}
public class klas3 
{
  public DateTime birzaman;
}

// verilerimizi List<> yapısında tutuyoruz:
var list1 = new List<klas1>();
var list2 = new List<klas2>();
var list3 = new List<klas3>();

// bundan sonra listelerimize verilerimizi yazıyoruz..

list1.Add(new klas1() { herhangibirsayi=10, baskabirsayi=123.45 });
.
.
.

// en son excel belgesini oluşturuyoruz
try
{
	System.Data.DataTable dt1 = ExportToExcel.CreateExcelFile.ListToDataTable(list1);
	System.Data.DataTable dt2 = ExportToExcel.CreateExcelFile.ListToDataTable(list2);
	System.Data.DataTable dt3 = ExportToExcel.CreateExcelFile.ListToDataTable(list3);

	dt1.TableName = "tablo1"; // her bir tablo excelde sayfa (sheet) olarak çıkacak.
	dt2.TableName = "tablo2";
	dt3.TableName = "tablo3";


	System.Data.DataSet ds = new System.Data.DataSet();

	ds.Tables.Add(dt1);
	ds.Tables.Add(dt2);
	ds.Tables.Add(dt3);

	ExportToExcel.CreateExcelFile.CreateExcelDocument(ds, excelfilename);
}
catch (System.Exception ex)
{
	System.Windows.MessageBox.Show("Excel dosyası oluşturmada hata oluştu..\r\nException: " + ex.Message);
	return;
}
1 ya da 0. işte 'bit'ün mesele..

Mucit23

@bocek hocam teşekkürler şimdi hallettim. Excel ile ilgili sorun kalmadı. Teşekkür ederim.

Başka bir sorunum var size danışayım. Uygulamamı tamamladım sayılır. Projeyi derleyip setup dosyası haline dönüştürüyorum. Kendi projeyi geliştirdiğim bilgisayarda sorun yok derlediği gibi çalışıyor. Fakat setup dosyasını başka bir bilgisayara atıp programı oraya kurduğumda programın bazı özellikleri çalışmıyor. Örneğin bir textboxa yazılması gereken veri yazılmıyor. Yada grafik çiziyorum grafik üzerindeki bazı işaretlemeleri yazmıyor. Buna benzer birkaç hata oluşuyor.

Grafikte devexpress toollarını kullanıyorum.

Textbox da sorun yaşamam beni çok şaşırttı. Form üzerinde birçok Textbox var sadece bir kısmı sorunlu çalışıyor.

Sorunlu bilgisayarda visual studio ve devexpress kurulu değil.

Neden olur böyle birşey fikir verebilecek olan var mı?

bocek

Program, kullandığı bazı kütüphane dosyalarını bulamıyor olabilir. Mesela devexpress'in bazı dll'leri yüklenmiyor olabilir.
VS Projesinde References'ta bulunan devexpress'e ait referansların üzerinde sağ tıklayıp Properties'lerine göz atın. Orada 'Copy Local' özelliği 'True' değilse derlemede kütüphane dosyasını exe'nin yanına kopyalamıyor demektir. Dolayısıyla setup bu dosyaları görmüyor ve kurulum içerisine dahil etmiyor olabilir.
Kesin sebep budur demiyorum ama bunu bir kontrol edin.
1 ya da 0. işte 'bit'ün mesele..

Mucit23

Sanırım burdan bahsediyorsunuz değilmi.

Devexpress tooları true idi ama sistem ile ilgili bazı dll parçacıkları false görünüyor. Bunları düzeltip tekrar deneyeceğim.

brandice5

Eğer uygulaman EXE nin yanında bir veya daha fazla .net DLL gerektiriyorsa, tüm bu DLL dosyaları "ILMerge" ile EXE nin içine gömebilirsin. EXE boyutu biraz büyük olur ama sadece EXE yi taşıyarak programın heryerde çalışır.

bocek

Ya da şu olabilir.
Projenizde kullandığınız .NET Framework versiyonu hedef bilgisayarda yüklü değildir veya daha eski bir versiyon yüklüdür.
Project Properties'te Target Framework satırı vardır. Burada yazar .NET versiyonu. Aynı versiyon hedef blgisayarda da yüklü olmalıdır. Setup sırasında Microsoft'tan linkini verip yükletmelisiniz.
Örneğin 4.7.2 için:

https://support.microsoft.com/tr-tr/help/4054530/microsoft-net-framework-4-7-2-offline-installer-for-windows
1 ya da 0. işte 'bit'ün mesele..

Mucit23

Test yaptığım bilgisayarda Windows10 kuruluydu.. Windows 10 da bildiğim kadarıyla netframework standart olarak geliyor. Yani ekstra kurma gibi bir işlem yapılmıyordu. Emin değilim. Uygulama portable de olabilir aslında onu test etmem lazım.

@bocek dediğini kontrol edeceğim.

Aslında devexpress den yana da çok sorunum var. Bunu pc başına geçince anlatacağım.

foseydon

.net framework uymsuzluğu olursa hiç açmaz. ondan değildir. muhtemelen kullandığınız kütüphanelerin(dll) kurulma sorunu. sizin bilgisayar kütüphaneler olduğu için sıkıntısız çalışıyor, yeni kurulan bilgisayarda kütüphaneler olmadığı için düzgün çalışmıyor. misal, textbox devexpress kütüphanesi tarafından sağlanıyorsa onu sağlayan dll kurulan bilgisayarda yoksa textbox'ta arıza çıkıyor. setup dosyasının içine o dll'leri de ekleyip kurulumda ilgili yerlere kurmanız lazım.

Mucit23

#283
Alıntı yapılan: foseydon - 01 Mayıs 2020, 16:06:03.net framework uymsuzluğu olursa hiç açmaz. ondan değildir. muhtemelen kullandığınız kütüphanelerin(dll) kurulma sorunu. sizin bilgisayar kütüphaneler olduğu için sıkıntısız çalışıyor, yeni kurulan bilgisayarda kütüphaneler olmadığı için düzgün çalışmıyor. misal, textbox devexpress kütüphanesi tarafından sağlanıyorsa onu sağlayan dll kurulan bilgisayarda yoksa textbox'ta arıza çıkıyor. setup dosyasının içine o dll'leri de ekleyip kurulumda ilgili yerlere kurmanız lazım.

Uygulama ayarlarında Net FrameWork Ayarı mevcut. Muhtemelen projeyi ilk oluşturduğum zaman benim bilgiayarımda kurulu sürüme göre projeyi oluşturdu. Bende dikkat etmedim ama net framework sürümü bende 4.6.1 di.

Proje ayarlarında NetFramework sürümünü seçebiliyorum


Buradaki sürümü daha eski bir sürüm seçersem ne olur?
Bildiğim kadarıyla Windows 10 ile birlikte Net Framework 4.5 standart olarak geliyor.

Mucit23

Kodumun niye yanlış çalıştığını anladım sanırım. Çok basitmiş. Net frameWork sürümü ile ilgili değil sanırım.

Program içerisinde çok ufak 16x16pixel resimler var. Bu resimleri grafik çizdiğimde Legend iconu olarak kullanıyorum.

Program içinde Resim URL'si vererek programda iconun gözükmesini sağlıyorum. Ama URL verirken resimlerin benim pc deki konumunu veriyordum.

Legend1_Item.MarkerImage.Image = new Bitmap(@"C:\Users\my_pc\Dropbox\PC Software\PC_Software2017\PC_Application\PC_Application\Resources\Legend1.png");

Kendi bilgisayarımda çalışıyor elbet ama baka bilgisayarda bu kodlar hata veriyor doğal olarak. Kod büyüyünce gözümden kaçmış.

Bu şekilde 5-6 tane resim var bu resimleri exe içine gömüp kod içinden çağırmam gerekiyor. Bunu nasıl yapabilirim?