如何阅读excel文件并在网格视图中显示其数据?我尝试了ODBC提供程序的工作,但它正在赢得“Dns = EXCELF”,连接sring怎么可能?我生成我的Excel工作表连接字符串:
Provider = MSDASQL.1; Persist Security Info = False; User ID = admin; Data Source = Excel Files; Initial Catalog = D:\ Parallelminds \ Tryouts \ sample.xlsx
这是错的吗?请指导我。我必须在哪个连接字符串...?
答案 0 :(得分:4)
它因Excel版本而有所不同,但如果是2007年之前,您可以在此处找到所需内容:http://connectionstrings.com/excel
否则,浏览http://connectionstrings.com/。它在某处,我保证:)。
答案 1 :(得分:2)
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();
}
答案 2 :(得分:0)
这Excel Data Provider非常方便。我最近在我的一个客户的网站上使用它,并进行了一些小的自定义。如果您查看代码,您应该能够清楚地了解如何从C#查询Excel。
只是一个警告:如果部署计算机上没有安装Excel,那么您将被限制为解析标准XLS文件(Office至2003),并且无法读取XLSX(Office 2007)。