首页 新闻 会员 周边 捐助

C#读取Excel“未指定错误”?

0
悬赏园豆:40 [已关闭问题] 关闭于 2014-02-23 16:46

为什么我在64位开发机器上安装的32bit的Office2010,用下面的连接字符串打开xls和xlsx格式都没有问题,但是在另外一台机器上安装的office2007就出问题呢,07的xlsx能够导入,但是03xls的导入老是报“未指定错误”?我的不是web开发,是桌面程序。

 1 /// <summary>
 2         /// 返回Excel数据源
 3         /// </summary>
 4         /// <param name="filename">文件路径
 5         /// <returns></returns>
 6         public static DataSet ExcelToDataSet(string filePath, string Suffix)
 7         {
 8             try
 9             {
10                 string strConn = "";
11                 if (Suffix == "xls")
12                 {
13                     strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0;";
14                } 
15                else if (Suffix == "xlsx")
16                {
17             strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=1\"";//HDR=Yes表示有列名 返回的时候不包括第一行数据 要想返回可设置成No
18                }
19                OleDbConnection OleConn = new OleDbConnection(strConn);
20                OleConn.Open();
21                String sql = "SELECT * FROM  [Sheet1$]";//可是更改Sheet名称,比如sheet2,等等   
22 
23             OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
24                DataSet OleDsExcle = new DataSet();
25                OleDaExcel.Fill(OleDsExcle, "Sheet1");
26                OleConn.Close();
27                return OleDsExcle;
28          }
29         catch (Exception err)
30         {
31             System.Windows.Forms.MessageBox.Show("数据绑定Excel失败!失败原因:" + err.Message);
32          }
33          return null;
34      }
太一吾鱼水的主页 太一吾鱼水 | 菜鸟二级 | 园豆:320
提问于:2013-12-20 22:19
< >
分享
所有回答(2)
0

版本声明。strConn

iEvent | 园豆:529 (小虾三级) | 2013-12-21 07:59

什么意思?程序重启一下就都有没有问题了,这到底是怎么回事?

支持(0) 反对(0) 太一吾鱼水 | 园豆:320 (菜鸟二级) | 2013-12-21 10:26
0

用office自带的对版本要求太多

建议使用epplus

谦行 | 园豆:473 (菜鸟二级) | 2013-12-21 08:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册