none
Column number out of bounds hatası RRS feed

Tüm Yanıtlar

  • Worksheet column sutun satırının silince çözüldü. Ama autofit i kullanmam gerekiyor. Başka şekilde ve daha kısa sekilde yapabilir miyim?
    25 Ekim 2016 Salı 18:21
  • Kodu paylaşsaydın iyi olurdu. 

    Kod satırının en altına aşağıdaki kodu yazıp deneyebilir misin?

    Excel.Range urange = worksheet.UsedRange;
    urange.Columns.AutoFit();

    Eğer olmazsa aşağıdaki gibi dene.

    urange.EntireColumn.AutoFit();	

    i can change the world, just need the source code..

    25 Ekim 2016 Salı 20:41
  • Bunlar için using kısmına ne yazmalıyım?
    26 Ekim 2016 Çarşamba 06:50
  •  

    26 Ekim 2016 Çarşamba 07:04
  • Office interoptan referans alacaksın orada bir sorun yok ta, senin worksheet'i oluşturduğun kodu yazar mısın? 

    Daha doğrusu excele aktardığın kodun tamamını paylaşır mısın?


    i can change the world, just need the source code..

    26 Ekim 2016 Çarşamba 10:01
  • Bu kodla hem hata vermiyor hem de satırları veriboyutuna göre ayarlıyor. Ama yine de tek satırda ayarlamayı öğrenmek istiyorum .Kod böyle .Tekrar belirlteyim . Konu başındaki hata çözüldü. Alttaki kodda olmayan kodları koyu yazdım.  Excel kısmı böyle.         

                List<RaporTabloTedarikciBirimFiyatAnalizleriModel> RTTBFA = RaporTabloTedarikciBirimFiyatAnalizleriService.RaporTabloTedarikciBirimFiyatAnalizleriListyeni(txtBas.Value, 
                RTTBFA.ForEach(x => x.Hastaneler = RaporTabloTedarikciBirimFiyatAnalizleriService.FirmaGetir(x.UrunID));
                var fileName = Server.MapPath("/MedyaKutuphanesi/TedarikciBirimFiyatAnalizleriRaporu.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");
                    }
                    int rowCounter = 2;             
                    worksheet.Row(1).Style.Font.Bold = true;
                    worksheet.Cells[1, 1].Value = "Malzeme Kodu";
                    worksheet.Cells[1, 2].Value = "Malzeme Adı";
                    worksheet.Cells[1, 3].Value = "Marka";
                    worksheet.Cells[1, 4].Value = "Alım yapılan Firma Adı";
                    worksheet.Cells[1, 5].Value = "Alış Fiyatımız";
                    worksheet.Cells[1, 6].Value = "Satış Fiyatımız";
                    worksheet.Cells[1, 7].Value = "Toplam Alım Adedi";
                    for (int j = 0; j < RTTBFA[0].Hastaneler.Count; j++)
                    {
                        worksheet.Cells[1, 8 + (j * 1)].Value = RTTBFA[0].Hastaneler[j].KurumKisaltmaAdi;
                    }
                    worksheet.Column(1).AutoFit(); // bu kod altta farklı yerdeydi
                    for (int i = 0; i < RTTBFA.Count; i++)
                    {
                        worksheet.InsertRow(rowCounter, 1);
                        worksheet.Cells[rowCounter, 1].Value = RTTBFA[i].StokKodu;
                        worksheet.Cells[rowCounter, 2].Value = RTTBFA[i].UrunKisaAdi;
                        worksheet.Cells[rowCounter, 3].Value = RTTBFA[i].MarkaAdi;
                        worksheet.Cells[rowCounter, 4].Value = RTTBFA[i].KurumKisaltmaAdi;
                        worksheet.Cells[rowCounter, 5].Value = RTTBFA[i].AlisFiyati;
                        worksheet.Cells[rowCounter, 6].Value = RTTBFA[i].SatisFiyati;
                        worksheet.Cells[rowCounter, 7].Value = RTTBFA[i].ToplamAlimMiktari;

                        for (int j = 0; j < RTTBFA[i].Hastaneler.Count; j++)
                        {
                            worksheet.Cells[rowCounter, 8 + (j * 1)].Value = RTTBFA[i].Hastaneler[j].SatılanMiktar;
                        }
                        worksheet.Column(rowCounter).AutoFit();
                        rowCounter++;
                    }  

                    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                    Response.AddHeader("content-disposition", "attachment;  filename=TedarikciBirimFiyatAnalizleriRaporu.xlsx");
                    Response.BinaryWrite(package.GetAsByteArray());
                    Response.Flush();
                    Response.End();                                                       


    27 Ekim 2016 Perşembe 08:24
  • Konunun başında belirttiğim hatayı alamanın sebebi  olmayan veride işlem yapmaya çalışmammış. Sutun sayısını satır sayısına verince hata veriyor. Çünkü sütün sayısı kadar satır yok.  Bu hatalı kod .Farklı yerlerin koyu yazdım.Excel kısmı böyle.

                   
                List<RaporTabloTedarikciBirimFiyatAnalizleriModel> RTTBFA = RaporTabloTedarikciBirimFiyatAnalizleriService.RaporTabloTedarikciBirimFiyatAnalizleriListyeni(txtBas.Value, txtBit.Value, ids);
                RTTBFA.ForEach(x => x.Hastaneler = RaporTabloTedarikciBirimFiyatAnalizleriService.FirmaGetir(x.UrunID));
                var fileName = Server.MapPath("/MedyaKutuphanesi/TedarikciBirimFiyatAnalizleriRaporu.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");
                    }
                    int rowCounter = 2;
                    int sutun = 8;            
                    worksheet.Row(1).Style.Font.Bold = true;
                    worksheet.Cells[1, 1].Value = "Malzeme Kodu";
                    worksheet.Cells[1, 2].Value = "Malzeme Adı";
                    worksheet.Cells[1, 3].Value = "Marka";
                    worksheet.Cells[1, 4].Value = "Alım yapılan Firma Adı";
                    worksheet.Cells[1, 5].Value = "Alış Fiyatımız";
                    worksheet.Cells[1, 6].Value = "Satış Fiyatımız";
                    worksheet.Cells[1, 7].Value = "Toplam Alım Adedi";
                   
                    for (int j = 0; j < RTTBFA[0].Hastaneler.Count; j++)
                    {
                        worksheet.Cells[1, 8 + (j * 1)].Value = RTTBFA[0].Hastaneler[j].KurumKisaltmaAdi;
                    }
                    worksheet.Column(1).AutoFit();
                    for (int i = 0; i < RTTBFA.Count; i++)
                    {
                        worksheet.InsertRow(rowCounter, 1);
                        worksheet.Cells[rowCounter, 1].Value = RTTBFA[i].StokKodu;
                        worksheet.Cells[rowCounter, 2].Value = RTTBFA[i].UrunKisaAdi;
                        worksheet.Cells[rowCounter, 3].Value = RTTBFA[i].MarkaAdi;
                        worksheet.Cells[rowCounter, 4].Value = RTTBFA[i].KurumKisaltmaAdi;
                        worksheet.Cells[rowCounter, 5].Value = RTTBFA[i].AlisFiyati;
                        worksheet.Cells[rowCounter, 6].Value = RTTBFA[i].SatisFiyati;
                        worksheet.Cells[rowCounter, 7].Value = RTTBFA[i].ToplamAlimMiktari;
                       
                        for (int j = 0; j < RTTBFA[i].Hastaneler.Count; j++)
                        {
                            worksheet.Cells[rowCounter, 8 + (j * 1)].Value = RTTBFA[i].Hastaneler[j].SatılanMiktar;
                           worksheet.Column(sutun).AutoFit();
                           sutun++;
                        }                 
                        rowCounter++;

            }

              worksheet.Column(1).AutoFit();

              worksheet.Column(2).AutoFit();

              worksheet.Column(3).AutoFit();

              worksheet.Column(4).AutoFit();

              worksheet.Column(5).AutoFit();

              worksheet.Column(6).AutoFit();

              worksheet.Column(7).AutoFit();





    27 Ekim 2016 Perşembe 08:30
  • Sorun halloldu. Yine de az kodla tüm alanları veriye göre şekillendirmeyi öğrenmek istiyorum. Yukarıda paylaştığım resimde usedrange niye altı çizili oluyor?
    27 Ekim 2016 Perşembe 10:04