IRONSOFTWAREHOME

Veri Doğrulama ile İlgili Excel Sınırlaması

Curtis Chau
Curtis Chau
Updated: 29 Haziran 2026

Microsoft Excel, dize listelerinin toplam uzunluğunun, virgüller gibi ayırıcılar dahil olmak üzere 255 karakteri aşamayacağını belirten iyi bilinen bir sınırlamaya sahiptir.

Aşağıda gösterildiği gibi, Excel Sayfasındaki mevcut bir aralıktan veri seçmek yerine, Kaynak Alanına dize listelerini manuel olarak girdiğinizde bu sorun ortaya çıkar.

Excel Sınırlama Sorunu

Excel Üzerindeki Excel Sınırlaması için Çözüm

Bu sınırlama için standart geçici çözüm, dizeleri Kaynak Alanına girmek yerine, çalışma sayfası içinde bir sütun veya satırda bir değer listesi oluşturmaktır. Aşağıda gösterildiği gibi.

Example Solution

Daha sonra, veri doğrulamada C1:C100 örneği gibi bir formül referansı kullanarak o aralığı işaret edebilirsiniz.

Yeni Kaynak
Yeni veri

Bu yaklaşım, 255 karakter sınırı ile sınırlı olmadan bir açılır liste oluşturmanıza olanak tanır.


IronXL Üzerindeki Sorun

IronXL, veri doğrulama için bir dizi string uygulamak amacıyla AddStringListRule yöntemini kullanır. Ancak yukarıda belirtilen Excel'deki aynı karakter sınırlaması nedeniyle, kayıt yöntemi yine de çalışacaktır. Ancak listenin 255 karakteri aşması durumunda ciddi bir sorun doğurabileceğini bilmek önemlidir: Dosya açıldığında Excel çöker. İşte sorunu gösteren bir örnek.

using IronXL;
using IronXL.DataValidations;

// Set your license key here if you have one
IronXL.License.LicenseKey = "YOUR-LICENSE-KEY";
var workBook = WorkBook.Create(ExcelFileFormat.XLSX);

var sheet = workBook.CreateWorkSheet("Validation Rule Example using");
// Apply rules from row 2 down to row 500
var validationRangeStart = "2";
var validationRangeFinish = "500";

// --- 1. Define All Column Headers ---
sheet["A1"].Value = "String List Test";
sheet["B1"].Value = "Formula List Test";
sheet["A1:B1"].Style.Font.Bold = true;

// 256
string[] arrayString = new string[]
{
    "SKU-A01-R", "SKU-A02-R", "SKU-A03-R", "SKU-A04-R", "SKU-A05-R",
    "SKU-B01-G", "SKU-B02-G", "SKU-B03-G", "SKU-B04-G", "SKU-B05-G",
    "SKU-C01-B", "SKU-C02-B", "SKU-C03-B", "SKU-C04-B", "SKU-C05-B",
    "SKU-D01-Y", "SKU-D02-Y", "SKU-D03-Y", "SKU-D04-Y", "SKU-D05-Y",
    "END-001", "END-002", "END-003", "END-004", "END-005", "END-010", "END-001"
}; // total char with seperator 257 (230 char + 26 sperator [,] )

// no problem when write to a file
var skuValidation = sheet.DataValidations.AddStringListRule(sheet[$"A{validationRangeStart}:A{validationRangeFinish}"].RangeAddress, arrayString);

// set error box
skuValidation.ShowErrorBox = true;
skuValidation.ErrorBoxTitle = "Invalid SKU";
skuValidation.ErrorBoxText = "Please select a SKU from the list.";
skuValidation.ErrorAlert = ErrorAlert.Stop;
            
//attempt to save the file
var fileName = "CategoryProductCatalog.xlsx";
workBook.SaveAs(fileName);

Kodun içinde, bir açılır liste oluşturmak için stringlerden oluşan bir liste kaynağı olarak isimlendirilmiş arrayString listesini geçmeye çalışıyoruz. Ardından bunu CategoryProductCatalog.xlsx olarak kaydetmeye çalışıyoruz. Ancak, bu sınırlamalar nedeniyle dosyayı Microsoft Excel ile açtığımızda, dosyanın bozuk olduğunu ve açılamadığını belirten bir mesaj gösterilir.

alt metin


IronXL Çözümü

Bu Excel sınırlamasını doğru şekilde ele almak için, IronXL AddFormulaListRule yöntemini sağlar, bu yöntem DataValidations özelliğinden erişilebilir. Bu yöntem, Excel ile çalışma çözümüne benzer.

Öncelikle değer listesini çalışma sayfasındaki bir hücre aralığına yazarız. Daha sonra açılır liste kaynağı olarak bu aralığa referans vermek için AddFormulaListRule kullanın. Excel çözümüne aynı yöntemlerle sınırlamayı etkili bir şekilde aşarak, ancak bu durumda programatik olarak.

AddFormulaListRule kullanımı, Excel sınırlamasını düzgün bir şekilde aşar, ancak aynı zamanda, uzun değer listeleriyle bile Excel'de açıldığında dosyanın hem okunabilirliğini hem de kararlılığını korumasını sağlar.


Kod Örneği

Aşağıda bu sorunu aşan ek örnek kodu bulunmaktadır. Aynı çalışma kitabını kullanarak, önce bir çalışma sayfası oluşturur ve ardından tüm sütun başlıklarını tanımlarız. Önceki örnekten dize listesini ve işlevi göstermek için yeni verileri gireriz. Daha sonra, yukarıdaki doğrulama aralığı ile AddFormulaListRule çağırıyoruz. Son olarak bunu validationRuleExample.xlsx olarak kaydediyoruz. Çalışma kitabımızın bozulmadığından ve normal olarak kullanılabilir olduğundan emin olmak için Excel'de açarız. Bu adım, kodumuzun başarılı bir şekilde uygulandığını gösterdiği için kritiktir.

using IronXL;
using IronXL.DataValidations;
using System;

// Set your license key here if you have one
IronXL.License.LicenseKey = "YOUR-LICENSE-KEY";
var workBook = WorkBook.Create(ExcelFileFormat.XLSX);

var sheet = workBook.CreateWorkSheet("Validation Rule Example using");
// Apply rules from row 2 down to row 500
var validationRangeStart = "2";
var validationRangeFinish = "500";

// --- 1. Define All Column Headers ---
sheet["A1"].Value = "String List Test";
sheet["B1"].Value = "Formula List Test";
sheet["A1:B1"].Style.Font.Bold = true;

string[] arrayString2 = new string[] 
{ 
    "SKU-A01-R", "SKU-A02-R", "SKU-A03-R", "SKU-A04-R", "SKU-A05-R",
    "SKU-B01-G", "SKU-B02-G", "SKU-B03-G", "SKU-B04-G", "SKU-B05-G",
    "SKU-C01-B", "SKU-C02-B", "SKU-C03-B", "SKU-C04-B", "SKU-C05-B",
    "SKU-D01-Y", "SKU-D02-Y", "SKU-D03-Y", "SKU-D04-Y", "SKU-D05-Y",
    "END-001", "END-002", "END-003", "END-004", "END-005", "END-010", "END-001",
    "IRON01","IRON02","IRON03","IRON04","IRON05","IRON06","IRON07","IRON08","IRON09","IRON10",
    "IRON11","IRON12","IRON13","IRON14","IRON15","IRON16","IRON17","IRON18","IRON19","IRON20",
    "IRON21","IRON22","IRON23","IRON24","IRON25","IRON26","IRON27","IRON28","IRON29","IRON30",
    "IRON31","IRON32","IRON33","IRON34","IRON35","IRON36","IRON37","IRON38","IRON39","IRON40",
    "IRON41","IRON42","IRON43","IRON44","IRON45","IRON46","IRON47","IRON48","IRON49","IRON50",
    "IRON51","IRON52","IRON53","IRON54","IRON55","IRON56","IRON57","IRON58","IRON59","IRON60",
    "IRON61","IRON62","IRON63","IRON64","IRON65","IRON66","IRON67","IRON68","IRON69","IRON70",
    "IRON71","IRON72","IRON73","IRON74","IRON75","IRON76","IRON77","IRON78","IRON79","IRON80",
    "IRON81","IRON82","IRON83","IRON84","IRON85","IRON86","IRON87","IRON88","IRON89","IRON90",
    "IRON91","IRON92","IRON93","IRON94","IRON95","IRON96","IRON97","IRON98","IRON99","IRON100"
}; // total char with seperator 257 (230 char + 26 sperator [,] )

//Write the contents of your array to column A of the data sheet.
for (int i = 0; i < arrayString2.Length; i++)
{
    // Note: IronXL row and cell indices are 1-based.
    sheet[$"A{i + 1}"].Value = arrayString2[i];
}

// Create the formula string that points to our data range.
// This will look like: 'ValidationData'!$A$1:$A$100

string formula = $"'{sheet.Name}'!$A$1:$A${arrayString2.Length}";
Console.WriteLine($"Generated formula for validation: {formula}");

var sku2Validation = sheet.DataValidations.AddFormulaListRule(sheet[$"B{validationRangeStart}:B{validationRangeFinish}"], formula);

sku2Validation.ShowErrorBox = true;
sku2Validation.ErrorBoxTitle = "Invalid SKU2";
sku2Validation.ErrorBoxText = "Please select a SKU from the list.";
sku2Validation.ErrorAlert = ErrorAlert.Stop;

// --- Final Touches ---
sheet.AutoSizeColumn(0, true);
sheet.AutoSizeColumn(1, true);

var fileName = "validationRuleExample.xlsx";
workBook.SaveAs(fileName);

Console.WriteLine($"Successfully created '{fileName}' with 2 validation rules example.");

Çıktı Excel Dosyaları

Gördüğünüz gibi, Excel dosyası AddFormulaListRule kullanıldıktan sonra kararlı kaldı ve herhangi bir çökme meydana getirmiyor. Kendiniz denemek için, bu makalede kullanılan uygulamanın demosu ve Excel dosyası için lütfen bu bağlantıya bakın. Bu demo, süreci çalışır durumda görmenize ve bunu işinize nasıl uygulayacağınızı anlamanıza olanak tanır.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

Başlamaya Hazır mısınız?

Nuget Downloads 2,237,574Sürüm:2026.9yeni yayınlandı

Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez
PDF için C# NuGet Kütüphanesi
NuGet ile yükleyin

Sürüm: 2026.9

PM > Install-Package IronXL.Excel
nuget.org/packages/IronXL.Excel/
  1. Çözüm Gezgini'nde Referanslar'a sağ tıklayın, NuGet Paketlerini Yönet
  2. Gözat'ı seçin ve 'IronXL' araması yapın
  3. Paketi seçin ve yükleyin
C# PDF DLL
DLL İndir

Sürüm: 2026.9

  1. IronXL'i çözüm dizininizde ~/Libs gibi bir konuma indirin ve açın.
  2. Visual Studio Çözüm Gezgini'nde, Referanslar'a sağ tıklayın. Gözat'ı seçin, 'IronXL.dll'

$999 ve yukarısı

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez