Excel dosyalarının formüllerini yönetme
Giriş
Microsoft Excel’in ilgi çekici özelliklerinden biri, verileri formüller ve işlevlerle işleyebilmesidir. Microsoft Excel, kullanıcıların karmaşık hesaplamaları hızla gerçekleştirmesine yardımcı olan bir dizi yerleşik işlev ve formül sağlar. Aspose.Cells ayrıca, geliştiricilerin değerleri kolayca hesaplamasına yardımcı olan çok sayıda yerleşik işlev ve formül sağlar. Aspose.Cells ayrıca eklenti işlevlerini de destekler. Ayrıca Aspose.Cells, Aspose.Cells’deki dizi ve R1C1 formüllerini destekler.
Formülleri ve İşlevleri Kullanma
Aspose.Cells bir sınıf sağlar,Çalışma kitabı , bu bir Microsoft Excel dosyasını temsil eder. buÇalışma kitabı sınıf bir içerirçalışma sayfaları Excel dosyasındaki her çalışma sayfasına erişim sağlayan koleksiyon. Bir çalışma sayfası şununla temsil edilir:Çalışma kağıdı sınıf. buÇalışma kağıdı sınıf bir sağlarCells Toplamak. Cells koleksiyonundaki her öğe, bir nesneyi temsil eder.Cell sınıf.
tarafından sunulan özellikler ve yöntemler kullanılarak hücrelere formüller uygulamak mümkündür.Cell sınıf, aşağıda daha ayrıntılı olarak ele alınmıştır.
- Yerleşik işlevleri kullanma.
- Eklenti işlevlerini kullanma.
- Dizi formülleriyle çalışma.
- R1C1 formülü oluşturma.
Yerleşik İşlevleri Kullanma
Yerleşik işlevler veya formüller, geliştiricilerin çabalarını ve zamanını azaltmak için hazır işlevler olarak sağlanır. Görmekyerleşik işlevlerin bir listesi Aspose.Cells tarafından desteklenmektedir. Fonksiyonlar alfabetik sırayla listelenmiştir. Gelecekte daha fazla işlev desteklenecektir.
Aspose.Cells, Microsoft Excel tarafından sunulan formüllerin veya işlevlerin çoğunu destekler. Geliştiriciler bu formülleri API veyatasarımcı elektronik tablosu. Aspose.Cells, çok sayıda matematiksel, dizi, Boolean, tarih/saat, istatistik, veritabanı, arama ve referans formüllerini destekler.
KullanCell sınıf'formülhücreye formül ekleme özelliği.karmaşık formüller, örneğin
= H7*(1+IF(P7 = $L$3,$M$3, (IF(P7=$L$4,$M$4,0))))
, Aspose.Cells’de de desteklenir. Bir hücreye formül uygularken, Microsoft Excel’de formül oluştururken yaptığınız gibi dizeye her zaman eşittir işaretiyle (=) başlayın ve işlev parametrelerini ayırmak için virgül (,) kullanın.
Aşağıdaki örnekte, bir çalışma sayfasının ilk hücresine karmaşık bir formül uygulanmıştır.Cells Toplamak. Formül yerleşik bir kullanırEĞER Aspose.Cells tarafından sağlanan işlev.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create directory if it is not already present. | |
bool IsExists = System.IO.Directory.Exists(dataDir); | |
if (!IsExists) | |
System.IO.Directory.CreateDirectory(dataDir); | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Adding a new worksheet to the Excel object | |
int sheetIndex = workbook.Worksheets.Add(); | |
// Obtaining the reference of the newly added worksheet by passing its sheet index | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Adding a value to "A1" cell | |
worksheet.Cells["A1"].PutValue(1); | |
// Adding a value to "A2" cell | |
worksheet.Cells["A2"].PutValue(2); | |
// Adding a value to "A3" cell | |
worksheet.Cells["A3"].PutValue(3); | |
// Adding a SUM formula to "A4" cell | |
worksheet.Cells["A4"].Formula = "=SUM(A1:A3)"; | |
// Calculating the results of formulas | |
workbook.CalculateFormula(); | |
// Get the calculated value of the cell | |
string value = worksheet.Cells["A4"].Value.ToString(); | |
// Saving the Excel file | |
workbook.Save(dataDir + "output.xls"); |
Eklenti İşlevlerini Kullanma
Excel eklentisi olarak dahil etmek istediğimiz bazı kullanıcı tanımlı formüllerimiz olabilir. Cell.Formula işlevini ayarlarken yerleşik işlevler iyi çalışır, ancak eklenti işlevleri kullanarak özel işlevleri veya formülleri ayarlamaya ihtiyaç vardır.
Aspose.Cells, kullanarak eklenti işlevlerini kaydetmek için özellikler sağlarWorksheets.RegisterAddInFunction(). Daha sonra cell.Formula=anyFunctionFromAddIn ayarını yaptığımızda çıktı Excel dosyası AddIn fonksiyonundan hesaplanan değeri içermektedir.
Aşağıdaki örnek kodda eklenti işlevinin kaydedilmesi için aşağıdaki XLAM dosyası indirilmelidir. Benzer şekilde çıktıyı kontrol etmek için “test_udf.xlsx” çıktı dosyası indirilebilir.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Create empty workbook | |
Workbook workbook = new Workbook(); | |
// Register macro enabled add-in along with the function name | |
int id = workbook.Worksheets.RegisterAddInFunction(sourceDir + @"TESTUDF.xlam", "TEST_UDF", false); | |
// Register more functions in the file (if any) | |
workbook.Worksheets.RegisterAddInFunction(id, "TEST_UDF1"); //in this way you can add more functions that are in the same file | |
// Access first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Access first cell | |
var cell = worksheet.Cells["A1"]; | |
// Set formula name present in the add-in | |
cell.Formula = "=TEST_UDF()"; | |
// Save workbook to output XLSX format. | |
workbook.Save(outputDir + @"test_udf.xlsx", Aspose.Cells.SaveFormat.Xlsx); |
Dizi Formülünü Kullanma
Dizi formülleri, formülü oluşturan işlevlerin bağımsız değişkenleri olarak tek tek sayılar yerine dizileri alan formüllerdir. Bir dizi formülü görüntülendiğinde, parantezler ({}) içine alınır.
Bazı Microsoft Excel işlevleri, değer dizileri döndürür. Bir dizi formülüyle birden çok sonucu hesaplamak için diziyi, dizi bağımsız değişkenleriyle aynı sayıda satır ve sütuna sahip bir hücre aralığına girin.
çağırarak bir hücreye dizi formülü uygulamak mümkündür.Cell sınıf'SetArrayFormula yöntem. buSetArrayFormula yöntem aşağıdaki parametreleri alır:
- Dizi Formülüdizi formülü.
- Satır sayısı, dizi formülünün sonucu doldurulacak satır sayısı.
- Sütun sayısıdizi formülünün sonucu doldurulacak sütun sayısı.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Create directory if it is not already present. | |
bool IsExists = System.IO.Directory.Exists(dataDir); | |
if (!IsExists) | |
System.IO.Directory.CreateDirectory(dataDir); | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(); | |
// Adding a new worksheet to the Excel object | |
int sheetIndex = workbook.Worksheets.Add(); | |
// Obtaining the reference of the newly added worksheet by passing its sheet index | |
Worksheet worksheet = workbook.Worksheets[sheetIndex]; | |
// Adding a value to "A1" cell | |
worksheet.Cells["A1"].PutValue(1); | |
// Adding a value to "A2" cell | |
worksheet.Cells["A2"].PutValue(2); | |
// Adding a value to "A3" cell | |
worksheet.Cells["A3"].PutValue(3); | |
// Adding a value to B1 | |
worksheet.Cells["B1"].PutValue(4); | |
// Adding a value to "B2" cell | |
worksheet.Cells["B2"].PutValue(5); | |
// Adding a value to "B3" cell | |
worksheet.Cells["B3"].PutValue(6); | |
// Adding a value to C1 | |
worksheet.Cells["C1"].PutValue(7); | |
// Adding a value to "C2" cell | |
worksheet.Cells["C2"].PutValue(8); | |
// Adding a value to "C3" cell | |
worksheet.Cells["C3"].PutValue(9); | |
// Adding a SUM formula to "A4" cell | |
worksheet.Cells["A6"].SetArrayFormula("=LINEST(A1:A3,B1:C3,TRUE,TRUE)", 5, 3); | |
// Calculating the results of formulas | |
workbook.CalculateFormula(); | |
// Get the calculated value of the cell | |
string value = worksheet.Cells["A6"].Value.ToString(); | |
// Saving the Excel file | |
workbook.Save(dataDir + "output.xls"); |
R1C1 Formülünü Kullanma
ekleR1C1 ile bir hücreye başvuru stili formülüCell sınıf'R1C1Formülü Emlak.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
// Instantiating a Workbook object | |
Workbook workbook = new Workbook(dataDir + "Book1.xls"); | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Setting an R1C1 formula on the "A11" cell, | |
// Row and Column indeces are relative to destination index | |
worksheet.Cells["A11"].R1C1Formula = "=SUM(R[-10]C[0]:R[-7]C[0])"; | |
// Saving the Excel file | |
workbook.Save(dataDir + "output.xls"); |
ileri konular
- Emsaller ve Bağımlı Kişiler
- Formüllerde Dış Bağlantıları Ayarlama
- Yeni satırlara veri girerken Formülü Tablo veya Liste Nesnesinde otomatik olarak yay
- Adlandırılmış Aralık için Ayar Formülü
- Ayar Formülleri - İngilizce Dışı Kullanıcılar İçin Uyarı
- Paylaşılan Formülü Ayarlama
- Paylaşılan Formülün Maksimum Satırını Belirtin
- Desteklenen Excel İşlevleri