将Excel数据导出到DataTable中并检查混合数据类型

可能的使用场景

如果列包含各种类型的数据,则在将数据导出到DataTable时,程序会抛出类型异常。默认情况下,Aspose.Cells根据列中的第一个(单元格)值评估值的数据类型。因此,如果值是数字,则意味着该列的数据类型将为数字,这是合理的。如果第一个值是数字,但列中有字母数字数据或值,则应分配字符串数据类型。为了解决这个问题,请使用ExportDataTable overload,这涉及ExportDataTableOptions,请尝试将ExportTableOptions.CheckMixedValueType布尔属性设置为"true",如果一个列同时具有数值和字符串值,可以避免错误。

将Excel数据导出到DataTable并检查混合数据类型

以下示例说明了使用ExportTableOptions.CheckMixedValueType属性将Excel数据导出到数据表。请参考示例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