Veri Filtreleme
Veriye Otomatik Filtreleme Uygulama
Otomatik filtreleme, listede görüntülemek istediğiniz yalnızca öğeleri seçmenin en hızlı yoludur. Otomatik filtreleme özelliği, kullanıcılara belirli bir kriterlere göre listedeki öğeleri filtreleme olanağı sağlar. Metne, sayılara veya tarih bilgilerine göre filtreleme yapın.
Microsoft Excel’de Otomatik Filtreleme
Microsoft Excel’de otomatik filtreleme özelliğini etkinleştirmek için:
- Bir çalışma sayfasında başlık satırına tıklayın.
- Veri menüsünden Filtre seçin ve ardından Otomatik Filtre‘yi seçin.
Bir çalışma sayfasına otomatik filtre uyguladığınızda, filtre anahtarları (siyah oklar) sütun başlıklarının sağında görünür.
- Bir filtre okuna tıklayarak filtre seçeneklerinin listesini görüntüleyin.
Otomatik filtre seçeneklerinden bazıları:
Seçenekler | Açıklama |
---|---|
All | Listedeki tüm öğeleri bir kez gösterir. |
Custom | İçerir/içermez gibi özel filtre kriterleri |
Filter by Color | Dolgu rengine göre filtreleme |
Date Filters | Tarihe göre farklı kriterlere dayalı filtreleme |
Number Filters | Karşılaştırma, ortalama ve En Üst 10 vb. gibi sayılar üzerinde farklı filtre türleri. |
Text Filters | Başlangıç, son, içerir vb. gibi farklı filtreler |
Blanks/Non Blanks | Bu filtreler Metin Filtre Boş üzerinden uygulanabilir |
Kullanıcılar, Microsoft Excel’de bu seçenekleri kullanarak çalışma sayfalarındaki verileri manuel olarak filtreler.
Aspose.Cells for Node.js via C++ ile Otomatik Filtre
Aspose.Cells, Excel dosyasını temsil eden Bir Excel dosyasını temsil eden Workbook sınıfını sağlar. Workbook sınıfı, her bir çalışma sayfasına erişime izin veren Worksheets koleksiyonunu içerir.
Bir çalışma sayfası Worksheet sınıfı ile temsil edilir. Worksheet sınıfı, çalışma sayfalarını yönetmek için geniş bir özellik ve yöntem yelpazesi sağlar. Bir otomatik filtre oluşturmak için AutoFilter sınıfının Worksheet sınıfının AutoFilter özelliğini kullanın. AutoFilter özelliği, başlık satırını oluşturan hücre aralığını belirtmek için Range özelliğini sağlar. Bir otomatik filtre, başlık satırını oluşturan hücre aralığına uygulanır.
Her çalışma sayfasında yalnızca bir filtre aralığı belirleyebilirsiniz. Bu, Microsoft Excel tarafından sınırlıdır. Özel veri filtrelemesi için AutoFilter.Custom yöntemini kullanın.
Aşağıdaki örnekte, yukarıdaki bölümde Microsoft Excel kullanılarak oluşturulan aynı Otomatik Filtre Aspose.Cells for Node.js via C++ kullanılarak oluşturuldu.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(dataDir + "book1.xls"); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Creating AutoFilter by giving the cells range of the heading row | |
worksheet.getAutoFilter().setRange("A1:B1"); | |
// Saving the modified Excel file | |
workbook.save(dataDir + "output.out.xls"); |
Farklı Türlerde Filtre
Aspose.Cells, Renk Filtresi, Tarih Filtresi, Sayı Filtresi, Metin Filtresi, Boş Filtreler ve Dolu Filtreler gibi farklı filtre türleri uygulamak için birden fazla seçenek sağlar.
Dolgu Rengi
Aspose.Cells, hücrelerin dolum rengi özelliğine göre verileri filtrelemek için AddFillColorFilter fonksiyonunu sağlar. Aşağıdaki örnekte, sayfanın ilk sütununda farklı dolgu renklerine sahip bir şablon dosyası, renk filtreleme işlevini test etmek için kullanılmaktadır. Örnek dosyalar aşağıdaki bağlantılardan indirilebilir.
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Source directory | |
const sourceDir = dataDir; | |
// Output directory | |
const outputDir = dataDir; | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
let workbook = new AsposeCells.Workbook(path.join(sourceDir, "ColouredCells.xlsx")); | |
// Instantiating a CellsColor object for foreground color | |
let clrForeground = workbook.createCellsColor(); | |
clrForeground.color = AsposeCells.Color.fromArgb(255, 0, 0); // Red color | |
// Instantiating a CellsColor object for background color | |
let clrBackground = workbook.createCellsColor(); | |
clrBackground.color = AsposeCells.Color.fromArgb(255, 255, 255); // White color | |
// Accessing the first worksheet in the Excel file | |
let worksheet = workbook.getWorksheets().get(0); | |
// Call AddFillColorFilter function to apply the filter | |
worksheet.getAutoFilter().addFillColorFilter(0, AsposeCells.BackgroundType.Solid, clrForeground, clrBackground); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(path.join(outputDir, "FilteredColouredCells.xlsx")); |
Tarih
Farklı tarih filtreleri uygulanabilir, örneğin, Ocak 2018 tarihleri olan tüm satırları filtreleme. Aşağıdaki örnek kod bu filtreyi AddDateFilter fonksiyonu kullanarak gösterir. Örnek dosyalar aşağıda verilmiştir.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const sourceDir = path.join(__dirname, "data"); | |
const outputDir = path.join(__dirname, "output"); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(path.join(sourceDir, "Date.xlsx")); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Call AddDateFilter function to apply the filter | |
worksheet.getAutoFilter().addDateFilter(0, AsposeCells.DateTimeGroupingType.Month, 2018, 1, 0, 0, 0, 0); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(path.join(outputDir, "FilteredDate.xlsx")); |
Dinamik Tarih
Zaman zaman yıla bağlı olmaksızın, örneğin Ocak ayında tüm hücrelerin tarih temelli dinamik filtrelemelere ihtiyaç duyulabilir. Bu durumda DynamicFilter işlevi aşağıdaki örnek kodda olduğu gibi kullanılır. Örnek dosyalar aşağıdaki verilmiştir.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const sourceDir = path.join(__dirname, "data/"); | |
const outputDir = path.join(__dirname, "output/"); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(`${sourceDir}Date.xlsx`); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Call DynamicFilter function to apply the filter | |
worksheet.getAutoFilter().dynamic_Filter(0, AsposeCells.DynamicFilterType.January); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(`${outputDir}FilteredDynamicDate.xlsx`); |
Sayı
Aspose.Cells ile Özel filtreler, belirli bir aralıktaki sayıları seçmek gibi uygulanabilir. Aşağıdaki örnek, sayıları filtreleme işlevini göstermek için Custom() fonksiyonunun kullanımını göstermektedir. Örnek dosyalar aşağıda verilmiştir.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const sourceDir = path.join(__dirname, "data"); | |
const outputDir = path.join(__dirname, "data"); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(path.join(sourceDir, "Number.xlsx")); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Call Custom function to apply the filter | |
worksheet.getAutoFilter().custom(0, AsposeCells.FilterOperatorType.GreaterOrEqual, 5, true, AsposeCells.FilterOperatorType.LessOrEqual, 10); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(path.join(outputDir, "FilteredNumber.xlsx")); |
Metin
Bir sütun metin içeriyorsa ve belirli bir metin içeren hücreler seçilecekse, Filter() fonksiyonu kullanılabilir. Aşağıdaki örnekte, şablon dosyası bir ülke listesi içerir ve satır belirli bir ülke adı içeriyorsa seçilir. Aşağıdaki kod, metin filtrelemeyi gösterir. Örnek dosyalar aşağıda verilmiştir.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const sourceDir = path.join(__dirname, "data"); | |
const outputDir = path.join(__dirname, "output"); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(path.join(sourceDir, "Text.xlsx")); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Call Filter function to apply the filter | |
worksheet.getAutoFilter().filter(0, "Angola"); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(path.join(outputDir, "FilteredText.xlsx")); |
Boşluklar
Eğer bir sütun metin içeriyorsa ve bazı hücreler boşsa ve yalnızca boş hücrelerin bulunduğu satırları seçmek gerekiyorsa, MatchBlanks() işlevi aşağıda gösterildiği gibi kullanılabilir. Örnek dosyalar aşağıda verilmiştir.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Source directory | |
const sourceDir = path.join(dataDir, "source/"); | |
// Output directory | |
const outputDir = path.join(dataDir, "output/"); | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(sourceDir + "Blank.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Call MatchBlanks function to apply the filter | |
worksheet.getAutoFilter().matchBlanks(0); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(outputDir + "FilteredBlank.xlsx"); |
Boş Olmayanlar
Herhangi bir metin içeren hücrelerin filtrelenmesi gerektiğinde, aşağıda gösterildiği gibi MatchNonBlanks filtre işlevi kullanılır. Örnek dosyalar aşağıda verilmiştir.
const path = require("path"); | |
const AsposeCells = require("aspose.cells.node"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Source directory | |
const sourceDir = dataDir + "/"; // Assuming sourceDir is stored here | |
// Output directory | |
const outputDir = dataDir + "/"; // Assuming outputDir is stored here | |
// Instantiating a Workbook object | |
// Opening the Excel file through the file stream | |
const workbook = new AsposeCells.Workbook(sourceDir + "Blank.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Call MatchNonBlanks function to apply the filter | |
worksheet.getAutoFilter().matchNonBlanks(0); | |
// Call refresh function to update the worksheet | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(outputDir + "FilteredNonBlank.xlsx"); |
Contains ile Özel filtre
Excel, bazı belirli dizeleri içeren satırları filtrelemek gibi özel filtreler sunar. Bu özellik Aspose.Cells’te mevcuttur ve aşağıda örnek dosyadaki isimleri filtreleyerek gösterilmiştir. Örnek dosyalar aşağıda verilmiştir
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Instantiating a Workbook object containing sample data | |
let workbook = new AsposeCells.Workbook(path.join(dataDir, "sourseSampleCountryNames.xlsx")); | |
// Accessing the first worksheet in the Excel file | |
let worksheet = workbook.getWorksheets().get(0); | |
// Creating AutoFilter by giving the cells range | |
worksheet.getAutoFilter().setRange("A1:A18"); | |
// Initialize filter for rows containing string "Ba" | |
worksheet.getAutoFilter().custom(0, AsposeCells.FilterOperatorType.Contains, "Ba"); | |
// Refresh the filter to show/hide filtered rows | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(path.join(dataDir, "outSourseSampleCountryNames.xlsx")); |
Contains Kullanmadan Özel filtre
Excel, belirli bir dizge içermeyen satırları filtrelemek gibi özelleştirilmiş filtreler sağlar. Bu özellik Aspose.Cells’ta mevcuttur ve aşağıdaki örnek, verilen örnek dosyadaki isimleri filtreleyerek gösterir.
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const dataDir = path.join(__dirname, "data"); | |
// Instantiating a Workbook object containing sample data | |
const workbook = new AsposeCells.Workbook(path.join(dataDir, "sourseSampleCountryNames.xlsx")); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Creating AutoFilter by giving the cells range | |
worksheet.getAutoFilter().setRange("A1:A18"); | |
// Initialize filter for rows containing string "Ba" | |
worksheet.getAutoFilter().custom(0, AsposeCells.FilterOperatorType.NotContains, "Be"); | |
// Refresh the filter to show/hide filtered rows | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(path.join(dataDir, "outSourseSampleCountryNames.xlsx")); |
Belirli bir dizeyle Başlayan Özel Filtre
Excel, belirli bir dizge ile başlayan satırları filtreleme gibi özelleştirilmiş filtreler sağlar. Bu özellik Aspose.Cells’ta mevcuttur ve aşağıdaki örnek, verilen örnek dosyadaki isimleri filtreleyerek gösterir.
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const sourceDir = path.join(__dirname, "data/"); | |
const outputDir = path.join(__dirname, "output/"); | |
// Instantiating a Workbook object containing sample data | |
let workbook = new AsposeCells.Workbook(sourceDir + "sourseSampleCountryNames.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
let worksheet = workbook.getWorksheets().get(0); | |
// Creating AutoFilter by giving the cells range | |
worksheet.getAutoFilter().setRange("A1:A18"); | |
// Initialize filter for rows starting with string "Ba" | |
worksheet.getAutoFilter().custom(0, AsposeCells.FilterOperatorType.BeginsWith, "Ba"); | |
// Refresh the filter to show/hide filtered rows | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(outputDir + "outSourseSampleCountryNames.xlsx"); |
Belirli Bir Dize ile Biten Özel Filtre
Excel, Aspose.Cells’de mevcut olan ve aşağıdaki örnek dosyadaki isimleri filtreleyerek aşağıda gösterildiği gibi belirli bir dizeyle biten satırları filtreleyen özel filtreler sağlar.
const AsposeCells = require("aspose.cells.node"); | |
const path = require("path"); | |
// The path to the documents directory. | |
const sourceDir = path.join(__dirname, "data/"); | |
const outputDir = path.join(__dirname, "output/"); | |
// Instantiating a Workbook object containing sample data | |
const workbook = new AsposeCells.Workbook(sourceDir + "sourseSampleCountryNames.xlsx"); | |
// Accessing the first worksheet in the Excel file | |
const worksheet = workbook.getWorksheets().get(0); | |
// Creating AutoFilter by giving the cells range | |
worksheet.getAutoFilter().setRange("A1:A18"); | |
// Initialize filter for rows end with string "ia" | |
worksheet.getAutoFilter().custom(0, AsposeCells.FilterOperatorType.BeginsWith, "ia"); | |
// Refresh the filter to show/hide filtered rows | |
worksheet.getAutoFilter().refresh(); | |
// Saving the modified Excel file | |
workbook.save(outputDir + "outSourseSampleCountryNames.xlsx"); |