0

我正在使用 GemBox 读取 Excel 文件。我将字段复制到 DataTable,所以我必须先将列添加到 DataTable。

因此我使用这个代码:

For i As Integer = 0 To objWorksheet.Columns.Count - 1
    objDataTable.Columns.Add(i, GetType(ExcelCell))
Next

但是objWorksheet.Columns.Count即使 4 列中有数据也是 0。

有任何想法吗?

4

1 回答 1

3

单元格在内部按行而不是按列分配。ExcelColumn 对象仅在它们具有非标准宽度或样式时创建,或者直接访问它们。因此,虽然 ExcelRowCollection.Count 显示了数据占用的行数,但 ExcelColumnCollection.Count 并没有说明哪一列是最后一个被数据占用的列!

如果要读取工作表中的所有数据,请使用 ExcelRow.AllocatedCells 属性。

如果要查找最后一列被数据占用,请使用CalculateMaxUsedColumns方法。

在版本 3.5中添加了ExcelWorksheet.CreateDataTable(ColumnTypeResolution)方法。此方法将自动从 excel 文件列中生成具有适当类型的 DataTable 列,并将包含数据的单元格导入 DataTable 行。

于 2011-09-01T07:25:51.067 回答