我用Gembox读取Excel文件。 我正在将字段复制到数据表,所以我必须先将列添加到数据表中。 因此我使用此代码: 对于i As Integer = 0到objWorksheet.Columns.Count - 1 objDataTable.Columns.Add(i,GetType(ExcelCell)) 下一步
但即使theres数据在4列中,objWorksheet.Columns.Count为0。
任何想法?
答案 0 :(得分:2)
单元格在内部分配,而不是列。仅当ExcelColumn对象具有非标准宽度或样式或直接访问它们时,才会创建它们。因此,虽然ExcelRowCollection.Count显示数据占用的行数,但ExcelColumnCollection.Count并未说明哪一列是最后一个占用数据的列!
如果要阅读工作表中的所有数据,请使用ExcelRow.AllocatedCells属性。
如果要查找数据占用的最后一列,请使用CalculateMaxUsedColumns方法。
在版本3.5中,添加了ExcelWorksheet.CreateDataTable(ColumnTypeResolution)方法。此方法将从excel文件列自动生成具有适当类型的DataTable列,并将具有数据的单元格导入DataTable行。