标题:如何从Excel中读取文件到DataSet中?
只看楼主
anony
Rank: 2
等 级:论坛游民
帖 子:26
专家分:49
注 册:2009-10-26
结帖率:33.33%
已结贴  问题点数:20 回复次数:7 
如何从Excel中读取文件到DataSet中?
先说一下开发的平台:Windows 7 下, Visual studio2008 SP1 + office2007。
在这个平台下开发的读取Excel文件到DataSet中,
连接字符串为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Work Files\QA考情记录8月.xls; Extended Properties='Excel 12.0;HDR=Yes;IMEX=1'
用OleDbConnection连接的。在Open时候报错,
错误为:找不到可安装的 ISAM。

网上查了很多也核对了很多,就是不行。将其中的Excel12.0改为Excel8.0,Excel9.0都没有反应。
不知道为什么?
现在求解?
您的简单解答也许可以解决他人一个大问题…………

先谢谢了…………
搜索更多相关主题的帖子: Excel DataSet 文件 
2010-09-27 16:05
anony
Rank: 2
等 级:论坛游民
帖 子:26
专家分:49
注 册:2009-10-26
得分:0 
补充一下,可以发到邮箱联系:xuhaidong654321@
2010-09-27 16:07
c1_wangyf
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:7
帖 子:665
专家分:2832
注 册:2010-5-24
得分:20 
给你一点代码:这里用打开文件的方式进行的,看看也许有帮助!!
 string openfileName=null;
            OpenFileDialog openfd = new OpenFileDialog();
            openfd.Filter = "All Excel file (*.xls)|*.xls|All files (*.*)|*.*";
            if (openfd.ShowDialog() == DialogResult.OK)
            {
                openfileName = openfd.FileName;
                OpenFileName = openfileName;
            }
            else
            {
                MessageBox.Show("Please select a data file to import...", "Tips", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            ////////////////////////////////////////////////////////////
            ///////////////////得到文件名以后
            ////////////////////////////////////////////////////////////

            string excelfilename = openfileName;
            OleDbConnection conn = new OleDbConnection();
            conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0';Data Source=" + excelfilename;

            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
                DataTable tables = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

                for (int i = 0; i < tables.Rows.Count; i++)
                {
                    listBox_sheet_Name.Items.Add(tables.Rows[i]["Table_Name"].ToString());
                }
            }
            conn.Close();
            conn.Dispose();
2010-09-27 17:21
anony
Rank: 2
等 级:论坛游民
帖 子:26
专家分:49
注 册:2009-10-26
得分:0 
楼上你的方法不是太行的啊:下面附上我的一部分代码…………

private void FillDataInDataSet(string aStrFileFullName, string aStrSQL)
        {
            string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;"
                + "Data Source=" + aStrFileFullName + "; Extended Properties='Excel8.0'";

            OleDbConnection conn = new OleDbConnection(connStr);
            conn.Open();
            OleDbDataAdapter adpter = new OleDbDataAdapter(@aStrSQL, conn);

            //清空数据集中的表
            ds_Data.Tables.Clear();

            try
            {
                adpter.Fill(ds_Data);
            }
            catch (System.Exception ex)
            {
                throw new ApplicationException("数据填充错误:" + ex.Message);
            }
        }
2010-09-28 08:33
c1_wangyf
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:7
帖 子:665
专家分:2832
注 册:2010-5-24
得分:0 
到哪里出现问题了?!把错误信息说一下!

ds_Data是你前面定义的一个dataset吧?!
2010-09-28 09:07
anony
Rank: 2
等 级:论坛游民
帖 子:26
专家分:49
注 册:2009-10-26
得分:0 
回复 5楼 c1_wangyf
不知道怎么回事,将Excel8.0改为Excel 8.0就好了…………呵呵…………前面是在Open()的时候出现问题的…………
2010-10-08 15:38
zhouljsh
Rank: 1
等 级:新手上路
帖 子:21
专家分:5
注 册:2010-8-30
得分:0 
做个记号
2011-11-17 11:52
deweytan
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-12-8
得分:0 
我也想知道。511263658@,谢谢
2011-12-08 16:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-321498-1-1.html




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

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