GemBox.Spreadsheet

ExcelFile.LimitNear Event

Occurs when the size of XLS / CSV file in reading / writing is near GemBox.Spreadsheet Free limit. (Free version only)

public event LimitEventHandler LimitNear;

Event Data

The event handler receives an argument of type LimitEventArgs containing data related to this event. The following LimitEventArgs properties provide information specific to this event.

Property Description
FileName Gets the file name passed to the XLS / CSV file reading / writing method.
MaxRowCount Gets the maximum number of rows used.
Operation Indicates which operation caused this event to fire.
WorksheetCount Gets the number of worksheets used.
WriteWarningWorksheet Gets or sets whether the warning worksheet should be created when writing XLS file.

Remarks

This event is present only in Free version.

This event is fired when 80% of maximum row count per worksheet is reached (150 * 0.8 = 120 rows) or when 5 worksheets are used.

This event is not fired if LimitReached event is fired.

You can use this event to detect when your application is close to GemBox.Spreadsheet Free limit. For example, you can write number of used rows to a log file or send a notification e-mail.

Example

Following code demonstrates how to handle LimitNear and LimitReached events in GemBox.Spreadsheet Free. This sample disables warning worksheet in LimitNear event handler and displays console messages in LimitReached event handler.

[Visual Basic]
    Sub Main()
        Dim ef As ExcelFile = New ExcelFile

        AddHandler ef.LimitNear, AddressOf ef_LimitNear
        AddHandler ef.LimitReached, AddressOf ef_LimitReached

        Dim ws As ExcelWorksheet = ef.Worksheets.Add("Sheet1")

        Dim i As Integer
        For i = 0 To 172 - 1 Step i + 1
            ws.Cells(i, 0).Value = i
        Next

        ef.SaveXls("Test.xls")
    End Sub

    Private Sub ef_LimitNear(ByVal sender As Object, ByVal e As LimitEventArgs)
        e.WriteWarningWorksheet = False
    End Sub

    Private Sub ef_LimitReached(ByVal sender As Object, ByVal e As LimitEventArgs)
        Select Case e.Operation
            Case IoOperation.XlsReading
                Console.WriteLine("Data truncated while reading XLS file: " + e.FileName)

            Case IoOperation.CsvReading
                Console.WriteLine("Data truncated while reading CSV file: " + e.FileName)

            Case IoOperation.XlsWriting
                Console.WriteLine("Data truncated while writing XLS file: " + e.FileName)
                e.WriteWarningWorksheet = False

            Case IoOperation.CsvWriting
                Console.WriteLine("Data truncated while writing CSV file: " + e.FileName)

        End Select
    End Sub
[C#]
    static void Main(string[] args)
    {
        ExcelFile ef = new ExcelFile();

        ef.LimitNear += new LimitEventHandler(ef_LimitNear);
        ef.LimitReached += new LimitEventHandler(ef_LimitReached);

        ExcelWorksheet ws = ef.Worksheets.Add("Sheet1");

        for(int i=0; i!=172; i++)
            ws.Cells[i, 0].Value = i;

        ef.SaveXls("Test.xls");
    }

    private static void ef_LimitNear(object sender, LimitEventArgs e)
    {
        e.WriteWarningWorksheet = false;
    }

    private static void ef_LimitReached(object sender, LimitEventArgs e)
    {
        switch(e.Operation)
        {
            case IoOperation.XlsReading:
                Console.WriteLine("Data truncated while reading XLS file: " + e.FileName);
                break;

            case IoOperation.CsvReading:
                Console.WriteLine("Data truncated while reading CSV file: " + e.FileName);
                break;

            case IoOperation.XlsWriting:
                Console.WriteLine("Data truncated while writing XLS file: " + e.FileName);
                e.WriteWarningWorksheet = false;
                break;

            case IoOperation.CsvWriting:
                Console.WriteLine("Data truncated while writing CSV file: " + e.FileName);
                break;
        }
    }

See Also

ExcelFile Class | GemBox.Spreadsheet Namespace | LimitReached