public async Task LoadDataSetAsync(IDatasetHelper datasetHelper, bool convertOADateTime) { if (!_isValid) { datasetHelper.IsValid = false; } datasetHelper.IsValid = true; datasetHelper.CreateNew(); for (int ind = 0; ind < _workbook.Sheets.Count; ind++) { datasetHelper.CreateNewTable(_workbook.Sheets[ind].Name); datasetHelper.AddExtendedPropertyToTable("visiblestate", _workbook.Sheets[ind].VisibleState); await ReadSheetGlobalsAsync(_workbook.Sheets[ind]); if (_workbook.Sheets[ind].Dimension == null) { continue; } _depth = 0; _emptyRowCount = 0; //DataTable columns //todo: all very similar to sheet load in binary reader if (!_isFirstRowAsColumnNames) { for (int i = 0; i < _workbook.Sheets[ind].ColumnsCount; i++) { datasetHelper.AddColumn(null); } } else if (ReadSheetRow(_workbook.Sheets[ind])) { for (int index = 0; index < _cellsValues.Length; index++) { if (_cellsValues[index] != null && _cellsValues[index].ToString().Length > 0) { datasetHelper.AddColumn(_cellsValues[index].ToString()); } else { datasetHelper.AddColumn(string.Concat(COLUMN, index)); } } } else { continue; } datasetHelper.BeginLoadData(); var hasRows = false; while (ReadSheetRow(_workbook.Sheets[ind])) { hasRows = true; datasetHelper.AddRow(_cellsValues); } if (hasRows) { datasetHelper.EndLoadTable(); } } datasetHelper.DatasetLoadComplete(); }
public async Task LoadDataSetAsync(IDatasetHelper datasetHelper) { await LoadDataSetAsync(datasetHelper, true); }