public override object[] ExtractRecords()
{
if (String.IsNullOrEmpty(FileName))
throw new ExcelBadUsageException("You need to specify the WorkBookFile of the ExcelDataLink.");
var res = new ArrayList();
CultureInfo oldCulture = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
try {
int cRow = StartRow;
int recordNumber = 0;
OnProgress(new ProgressEventArgs(recordNumber, -1));
var colValues = new object[RecordFieldCount];
InitExcel();
OpenWorkbook(FileName);
while (ShouldStopOnRow(cRow) == false) {
try {
if (ShouldReadRowData(cRow)) {
recordNumber++;
OnProgress(new ProgressEventArgs(recordNumber, -1));
colValues = RowValues(cRow, StartColumn, RecordFieldCount);
object record = ValuesToRecord(colValues);
res.Add(record);
}
}
catch (Exception ex) {
switch (mErrorManager.ErrorMode) {
case ErrorMode.ThrowException:
throw;
case ErrorMode.IgnoreAndContinue:
break;
case ErrorMode.SaveAndContinue:
AddError(cRow, ex, ColumnsToValues(colValues));
break;
}
}
finally {
cRow++;
}
}
}
catch {
throw;
}
finally {
CloseAndCleanUp();
Thread.CurrentThread.CurrentCulture = oldCulture;
}
return (object[]) res.ToArray(RecordType);
}