excel导入datagridview问题

ksmark 2009-10-28 10:17:39
我用以下语句把Excel中的内容导入到DataGridView中,但是某一列有数字(如:1234)又有字符(如:1234a)。
单元格中的数字就是导入不了Datagridview中,字符的就可以。导入的都是空值。
目前的做法我就是让客户通过Excel功能把数字的全部转换成文本格式(公式: =Text(A1))。客户嫌太麻烦,想让我在程序中实现。各位请看我的程序在哪方面需要更改,谢谢。

代码如下:
conExcel = New OleDb.OleDbConnection(conString)
conExcel.Open()
'获取excel表()
Excel_DT = conExcel.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, Nothing)
'获取sheet名,其中(0)(1)...(N): 按名称排列的表单元素
tableName = Excel_DT.Rows(0)(2).ToString().Trim()
tableName = "[" & tableName.Replace(" ' ", " ") & "]"
Excel_DT.Rows(0).ItemArray(0).ToString()
txtSql = "Select Zpcode,LotNo,Quantity,ClientCode,SecModel,LampLot,Company From " + tableName
'txtSql = "Select Zpcode,Quantity,LampLot From " + tableName 'dgvLabelData列会变
Dim M_ConDBDAdpt As New OleDb.OleDbDataAdapter(txtSql, conString)
Dim ds As New DataSet
M_ConDBDAdpt.Fill(ds)
'M_ConDBDAdpt.Fill(Excel_DT) 一定要写Dataset否则会带出不必要的行和列
Excel_DT = ds.Tables(0)
.DataSource = ds.Tables(0)
'结果显示
lblResult.Text = ""
lblResult.Text = "您共导入了 " & Excel_DT.Rows.Count & " 条记录!"



...全文
110 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengjian_428 2009-10-28
  • 打赏
  • 举报
回复
改链接字符串就可以了

类似于这种的
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + Path + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";

加上HDR=Yes;IMEX=1;
湖中仙人 2009-10-28
  • 打赏
  • 举报
回复
在代码中改为文本格式
.Range(loaddatename(n) & i.ToString).NumberFormatLocal = "@"

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧