none
c# excel merge nasıl yapılır? RRS feed

Tüm Yanıtlar

  • Dogrudan excel otomasyon kullanacak isen (ki kodun sanki oyle yapiyor):

    using Microsoft.Office.Interop.Excel;

    Range icin Merge metodu var. Ornek:

    ((Range)sht.Range[(Range)sht.Cells[1, 1], (Range)sht.Cells[1, 3]]).Cells.Merge();

    5 Ocak 2017 Perşembe 13:57
  • Dediğiniz şekilde ekledim. Ama altı çizili kısımda hata veriyor.

     ((Range)worksheet.Range[(Range)worksheet.Cells[1, 1], (Range)worksheet.Cells[1, 3]]).Cells.Merge();

    5 Ocak 2017 Perşembe 14:03
  • Hatayi okumak genelde ise yarar.

    Birisi gecmiste sormus da, ben bu ornegi yazmisim, hatasiz calisiyor:

    void Main()
    {
    	// Formdaki textboxlardan gelen veriyi taklit etmek icin
    	List<Data> data = new List<Data> {
    		new Data { SiraNo=1, Saat="Saat:14:00", Neden="Ziyaret"},
    		new Data { SiraNo=2, Saat="Saat:15:00", Neden="Ziyaret 2"},
    		new Data { SiraNo=3, Saat="Saat:16:00", Neden="Ziyaret 3"},
    		new Data { SiraNo=4, Saat="Saat:17:00", Neden="Ziyaret 4"},
    	};
    	// Datetimepickerdan gelen veri icin
    	var tarih = DateTime.Now;
    
    	// Excel dosya yarat
    	Microsoft.Office.Interop.Excel.Application xl = new Microsoft.Office.Interop.Excel.Application();
    	var workbook = xl.Workbooks.Add();
    	xl.Visible = true;
    
    	Worksheet sht = ((Worksheet)workbook.ActiveSheet);
    
    	((Range)sht.Cells[1, 1]).Value = tarih.ToLongDateString();
    	((Range)sht.Range[(Range)sht.Cells[1, 1], (Range)sht.Cells[1, 3]]).Cells.Merge();
    
    	for (int i = 0; i < data.Count(); i++)
    	{
    		//i + 1 + 1 cunku Excel 1'den basliyor +1, ilk satirda tarih var +1
    		
    		((Range)sht.Cells[i + 1 + 1, 1]).Value = data[i].SiraNo + ")"; // 1), 2) ...
    		((Range)sht.Cells[i + 1 + 1, 2]).Value = data[i].Saat;
    		((Range)sht.Cells[i + 1 + 1, 3]).Value = data[i].Neden;
    	}
    }
    
    public class Data
    { 
      public int SiraNo { get; set; }
      public string Saat { get; set; }
      public string Neden { get; set; }
    }

    • Düzenleyen CetinBasoz 5 Ocak 2017 Perşembe 14:09
    5 Ocak 2017 Perşembe 14:08
  •  var fileName = Server.MapPath("/MedyaKutuphanesi/UrunAnaGrubuBazindaSatinAlma.xlsx");
                var file = new FileInfo(fileName);
                using (var package = new OfficeOpenXml.ExcelPackage(file))
                {
                    var worksheet = package.Workbook.Worksheets.Where(x => x.Name == "form").FirstOrDefault();
                    if (worksheet == null)
                    {
                        worksheet = package.Workbook.Worksheets.Add("form");
                    }

                }

    Ben worksheeti böyle yaratıyorum.

    5 Ocak 2017 Perşembe 14:25
  • O epplus degil mi? Dokumentasyonuna bak, cok seyi desteklemiyor, merge destekliyor mu bilemiyorum.
    5 Ocak 2017 Perşembe 17:08
  • Yukarıda bahsettiğim mantığa uygun şöyle bir şey buldum. Ama 2.nci satırda   Can't merge and already merged range hatası veriyor.

       worksheet.Select("A1:E1");
       worksheet.SelectedRange.Merge = true;
       worksheet.SelectedRange.Value = "Ürün";

    9 Ocak 2017 Pazartesi 07:10
  • worksheet.Cells["A1"].Value = "Ürün";
    worksheet.Cells["A1:E1"].Merge = true;

    Bu şekide de denedim. Yine 2 satıra can't merge hatası. Epplus merge diye araştırdım. Genellikle bu şekilde göstermişler.


    9 Ocak 2017 Pazartesi 08:13
  • "Zaten merge edilmis" diyor hata.
    9 Ocak 2017 Pazartesi 09:26