Asp.Net(c#) - 阅读Excel表格

时间:2010-03-24 12:17:20

标签: c# asp.net excel

我需要从Excel电子表格中进行一些导入,并且一直在查看网络上的各种示例,它们似乎都使用与64Bit不兼容的“Jet”驱动程序。

现在我完全了解可用的解决方法(更改IIS的运行方式等)但是我想知道是否有“Jet”驱动程序的替代品,以便我可以从Asp.Net上运行的excel表读取和生成一个没有IIS修改的64位服务器。

3 个答案:

答案 0 :(得分:4)

我上次研究的时候没有x64驱动程序。我用它来打开xls文件。只要使用x86进行编译,它就可以在64位盒子上工作。

 DataSet myDataset = new DataSet();
                string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + @";Extended Properties=""Excel 12.0 Xml;HDR=YES""";
                OleDbConnection myData = new OleDbConnection(strConn);
                try {
                                      myData.Open();
                }
                catch (OleDbException e) {
                    try {
                        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filename + ";" + "Extended Properties=Excel 8.0;HDR=YES;";
                        myData = new OleDbConnection(strConn);
                        myData.Open();
                    }
                    catch (Exception e2) {
                        strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + @";Extended Properties=""HTML Import;HDR=YES;IMEX=1"";";
                        myData = new OleDbConnection(strConn);
                        myData.Open();
                    }
                }

                int i = 0;
                foreach (DataRow row in myData.GetSchema("tables").Rows)
                    try {
                        i++;
                        string name = row[2].ToString().Replace("''", "'").TrimEnd('_');
                        DataSet ds = new DataSet();
                        OleDbDataAdapter d = new OleDbDataAdapter("SELECT * from [" + name + "]", strConn);
                        d.Fill(ds);
                        DataTable dt = ds.Tables[0].Copy();
                        dt.Namespace = name;
                        myDataset.Tables.Add(dt);
                    }
                    catch (Exception e) {
                    }
                return myDataset;

答案 1 :(得分:1)

http://npoi.codeplex.com

我自己在使用IIS 6.0的64位服务器上使用它 不是最容易使用的,但它工作正常(快速,可靠,不需要在服务器上安装办公室等)。

答案 2 :(得分:0)

您是否考虑过尝试Open XML SDK