如何通过连接string读取C#中的Excel文件?

如何读取excel文件并在网格视图中显示其数据? 我尝试了ODBC提供程序的工作,但是,它正在发生赢得“Dns = EXCELF”,如何可能与连接sring? 我生成我的Excel工作表连接string为:

Provider = MSDASQL.1; Persist Security Info = False; User ID = admin; Data Source = Excel Files; Initial Catalog = D:\ Parallelminds \ Tryouts \ sample.xlsx

这是错的吗? 请指导我。 哪个连接string,我必须给那里…?

Excel的版本有所不同,但如果这是2007年以前的版本,可以在这里find你所需要的: http : //connectionstrings.com/excel

否则,请浏览http://connectionstrings.com/ 。 它在那里,我保证:)。

public string BuildExcelConnectionString(string Filename, bool FirstRowContainsHeaders){ return string.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source='{0}';Extended Properties=\"Excel 8.0;HDR={1};\"", Filename.Replace("'", "''"),FirstRowContainsHeaders ? "Yes" : "No"); } public string BuildExcel2007ConnectionString(string Filename, bool FirstRowContainsHeaders){ return string.Format("Provider=Microsoft.ACE.OLEDB.12.0; Data Source={0};Extended Properties=\"Excel 12.0;HDR={1}\";", Filename.Replace("'", "''"),FirstRowContainsHeaders ? "Yes" : "No"); } private void ReadExcelFile(){ string connStr = BuildExcel2007ConnectionString(@"C:\Data\Spreadsheet.xlsx", true); string query = @"Select * From [Sheet1$] Where Row = 2"; System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connStr); conn.Open(); System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(query, conn); System.Data.OleDb.OleDbDataReader dr = cmd.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(dr); dr.Close(); conn.Close(); } 

这个Excel数据提供程序非常方便。 我最近在我的客户的一个网站上使用了一些小的自定义项。 如果您仔细查看代码,您应该能够深入了解如何从C#查询Excel。

只是一个警告:如果部署机器上没有安装Excel,那么您将被限制为parsing标准XLS文件(Office到2003),并且将无法读取XLSX(Office 2007)。