使用 Gembox 读取 Excel 文件 - Columns.Count = 0
我正在使用 GemBox 来读取 Excel 文件。我要将字段复制到数据表,因此必须首先将列添加到数据表。
因此我使用这段代码:
For i As Integer = 0 To objWorksheet.Columns.Count - 1
objDataTable.Columns.Add(i, GetType(ExcelCell))
Next
但是即使 4 列中有数据,objWorksheet.Columns.Count
也是 0。
有什么想法吗?
I'm using GemBox to read Excel files. I'm copying the fields to a DataTable, so I have to add the columns to the DataTable first.
Therefore I'm using this code:
For i As Integer = 0 To objWorksheet.Columns.Count - 1
objDataTable.Columns.Add(i, GetType(ExcelCell))
Next
But objWorksheet.Columns.Count
is 0 even if there is data in 4 columns.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
单元格在内部按行分配,而不是按列分配。仅当 ExcelColumn 对象具有非标准宽度或样式,或者直接访问它们时,才会创建它们。因此,虽然 ExcelRowCollection.Count 显示被数据占用的行数,但 ExcelColumnCollection.Count 并没有说明哪一列是最后一个被数据占用的列!
如果要读取工作表中的所有数据,请使用 ExcelRow.AllocationCells 属性。
如果您想查找最后一列被数据占用的数据,请使用 CalculateMaxUsedColumns 方法。
在版本 3.5 中添加了方法 ExcelWorksheet.CreateDataTable(ColumnTypeResolution) 。此方法将自动从 Excel 文件列生成具有适当类型的 DataTable 列,并将包含数据的单元格导入到 DataTable 行。
Cells are internally allocated in rows and not in columns. ExcelColumn objects are created only if they have non-standard width or style, or they are accessed directly. So, while ExcelRowCollection.Count shows number of rows occupied with data, ExcelColumnCollection.Count does not say which Column is the last one occupied with data!
If you want to read all data in a sheet, use ExcelRow.AllocatedCells property.
If you want to find last column occupied with data, use CalculateMaxUsedColumns method.
In version 3.5 method ExcelWorksheet.CreateDataTable(ColumnTypeResolution) is added. This method will automatically generate DataTable columns with appropriate type from excel file columns and will import cells with data to DataTable rows.