Экспорт данных из Excel в DataTable и проверка смешанного типа данных
Возможные сценарии использования
Если столбец содержит данные различных типов, программа выбросит исключение типа при экспорте данных в DataTable. При экспорте данных таблицы, по умолчанию Aspose.Cells оценивает тип данных для значений на основе самого первого (ячейки) значения в столбце. Так что, если значение является числом, это означает, что тип данных столбца будет числовым, что разумно. Если самое первое значение является числом, но в столбце есть алфанумерические данные или значения, стоит назначить тип данных строки. Чтобы справиться с этим, используйте перегрузку ExportDataTable, которая включает ExportDataTableOptions и попробуйте установить логический атрибут ExportTableOptions.CheckMixedValueType в “true”, если в столбце есть числовые и строковые значения, чтобы избежать ошибок.
Экспорт данных из Excel в DataTable и проверка смешанного типа данных
Следующий образец объясняет использование свойства ExportTableOptions.CheckMixedValueType для экспорта данных из Excel в DataTable. Пожалуйста, ознакомьтесь с образцом Excel-файла, его скриншотом и выводом на консоль для справки.
Образец кода
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
// Create workbook | |
Workbook workbook = new Workbook("sample.xlsx"); | |
// Access first worksheet | |
Worksheet worksheet = workbook.Worksheets[0]; | |
// Export Data Table Options | |
ExportTableOptions opts = new ExportTableOptions(); | |
opts.CheckMixedValueType = true; | |
// Export Data Table | |
DataTable dt = worksheet.Cells.ExportDataTable(0, 0, 7, 5, opts); | |
// Display the type of DataColumn | |
DataColumnCollection columns = dt.Columns; | |
foreach (DataColumn column in columns) | |
{ | |
Console.WriteLine(column.ColumnName + " = " + column.DataType); | |
} |
Снимок экрана


Вывод в консоль
Ниже приведен вывод отладки консоли вышеприведенного образца кода
Column1 = System.String
Column2 = System.String
Column3 = System.Double
Column4 = System.Double
Column5 = System.String