| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4228 人关注过本帖
标题:VB.NET读取EXCEL文件中的数据有问题?
只看楼主 加入收藏
binghe6610
Rank: 2
等 级:论坛游民
帖 子:273
专家分:61
注 册:2009-2-23
结帖率:86.67%
收藏
已结贴  问题点数:20 回复次数:12 
VB.NET读取EXCEL文件中的数据有问题?
  Dim sConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\binghe.xls" & ";Extended Properties=Excel 8.0;" '定义连接字符串
        Dim oleDbConnection As OleDbConnection = New OleDbConnection(sConnectionString)
        oleDbConnection.Open()

        '获取excel表
        Dim dataTable As DataTable = oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
        '利用SQL语句从Excel文件里获取数据

      

        Dim query As String = "SELECT * FROM [sheet1$]"
        Dim oleAdapter As OleDbDataAdapter = New OleDbDataAdapter(query, sConnectionString)

        oleAdapter.Fill(dt)
这是我的读取代码
问题是:如果EXCEL表中某列的值有数字和字母,只能读取到字母(开头)的值,不知是何缘故
搜索更多相关主题的帖子: NET EXCEL 数据 文件 
2010-10-19 10:52
binghe6610
Rank: 2
等 级:论坛游民
帖 子:273
专家分:61
注 册:2009-2-23
收藏
得分:0 
想知道在读取EXCEL文件时,EXCEL表中的数据格式对读取到的内容有影响吗?
我把EXCEL表中的数据全部设置为文本格式也不行,数字开头的值读到的是空。
2010-10-19 10:55
binghe6610
Rank: 2
等 级:论坛游民
帖 子:273
专家分:61
注 册:2009-2-23
收藏
得分:0 
没有人遇到过这样的问题吗?自己顶
2010-10-19 14:22
binghe6610
Rank: 2
等 级:论坛游民
帖 子:273
专家分:61
注 册:2009-2-23
收藏
得分:0 
自己顶
2010-10-21 12:59
wei855198
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:228
专家分:944
注 册:2009-4-24
收藏
得分:0 
帮顶

护肤小店 http://mina2010.
靓装小店 http://liangliyizu2010.
2010-10-23 16:44
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 

项目里,一直都是对EXCEL文件本身进行读写,还没有做过将EXCEL作为数据源进行了读写操作。

此问题关注中。欢迎有引经验的不吝跟贴。

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-10-23 19:46
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:20 
作了一个改动,看对楼主是不是有用处。以下是我调试时的方法及代码

1、打开EXCEL工作簿,运行以下宏
程序代码:
With Sheet1
   For i = 1 To .UsedRange.Rows.Count
       For j = 1 To .UsedRange.Columns.Count
           .Cells(i, j) = "'" & .Cells(i, j)
       Next
    Next
End With


2、下面是VB2008中的程序代码:
程序代码:
        Dim fileName As String
        fileName = Application.StartupPath & "\binghe.xls"
        Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & fileName & "';Extended Properties=Excel 8.0;"
        Dim myDataset As New System.Data.DataSet
        Dim da As New OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn)
        Try
            da.Fill(myDataset)
            Me.DataGridView2.DataSource = myDataset.Tables(0)
        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try



上述代码在VB2008中运行时,以OLEDB形式读取EXCEL时正常。
欢迎交流

[ 本帖最后由 不说也罢 于 2010-10-24 11:03 编辑 ]

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-10-24 10:58
binghe6610
Rank: 2
等 级:论坛游民
帖 子:273
专家分:61
注 册:2009-2-23
收藏
得分:0 
没有测试7楼的代码,好像7楼只是加了一个宏。感觉应该不是宏的原因。
不过还是给分了
2010-10-24 15:41
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
对于用EXCEL做数据源,只需要在写入的时候为单元格赋值时加上"'"就行了,不需要在XLS文件中添加宏
目前没有发现比这更好的办法。期待更好的解决办法


楼主如果想从任意EXCEL文件中读取数据到DATAGRIDVIEW表格中,不建议用OLEDB的方式,建议直接用VB。NET对EXCEL进行读写,很方便面的。



===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2010-10-24 15:57
binghe6610
Rank: 2
等 级:论坛游民
帖 子:273
专家分:61
注 册:2009-2-23
收藏
得分:0 
9楼的方法有门,我试试
2010-10-30 11:38
快速回复:VB.NET读取EXCEL文件中的数据有问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031615 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved