C++ ile Satırdaki Maksimum Sütun İndeksi ve Sütundaki Maksimum Satır İndeksi Alınması

Olası Kullanım Senaryoları

Sadece belirli veri alanlarıyla ilgileniyorsanız ve satırlar veya sütunlar üzerinde işlem yapmak istiyorsanız, satır ve sütunların veri aralığını bilmeniz gerekir. Aspose.Cells bu özelliği sunar. Bir satırdaki maksimum sütun indeksini almak için, Row.GetLastCell() ve Row.GetLastDataCell() özelliklerini edinebilir, ardından Cell.GetColumn() özelliğiyle maksimum sütun indeksini ve maksimum veri sütunu indeksini elde edebilirsiniz. Ancak, bir sütundaki maksimum satır indeksini ve maksimum satır veri indeksini almak için, sütunda bir aralık oluşturmanız, ardından bu aralığı dolaşıp son hücreyi bulmanız ve en sonunda hücredeki Cell.GetRow() özelliğini kullanmanız gerekir.

Aspose.Cells, hedeflerinize ulaşmanıza yardımcı olmak için aşağıdaki özellikler ve yöntemleri sağlar.

Aspose.Cells Kullanarak Satırda Maksimum Sütun İndeksini ve Sütunda Maksimum Satır İndeksini Alın

Bu örnek aşağıdakileri göstermektedir:

  1. Örnek dosyayı yükleyin.
  2. Maksimum sütun dizinini ve maksimum veri sütun dizinini elde etmek için satırı alın.
  3. Hücre üzerindeki Cell.GetColumn() özniteliğini alın.
  4. Sütuna dayalı bir aralık oluşturun.
  5. İteratörü alın ve aralığı gezin.
  6. Hücre üzerindeki Cell.GetRow() özniteliğini alın.
#include <iostream>
#include <memory>
#include "Aspose.Cells.h"

using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");
    U16String filePath = srcDir + u"sample.xlsx";

    Workbook workbook(filePath);
    Worksheet sheet = workbook.GetWorksheets().Get(0);
    Cells cells = sheet.GetCells();

    Row row = cells.CheckRow(1);
    if (row)
    {
        std::cout << "Max column index in row: " << row.GetLastCell().GetColumn() << std::endl;
        std::cout << "Max data column index in row: " << row.GetLastDataCell().GetColumn() << std::endl;
    }

    Range columnRange = cells.CreateRange(1, 1, true);
    auto colIter = columnRange.GetEnumerator();

    int maxRow = 0;
    int maxDataRow = 0;

    while (colIter.MoveNext())
    {
        Cell currCell = colIter.GetCurrent();
        if (!currCell.GetStringValue().IsEmpty())
        {
            maxDataRow = currCell.GetRow();
        }
        if (!currCell.GetStringValue().IsEmpty() || currCell.GetHasCustomStyle())
        {
            maxRow = currCell.GetRow();
        }
    }

    std::cout << "Max row index in Column: " << maxRow << std::endl;
    std::cout << "Max data row index in Column: " << maxDataRow << std::endl;

    Aspose::Cells::Cleanup();
    return 0;
}