导入任何Excel电子表格到DataGridView – C#
我有一个程序,将excel电子表格导入到datagridview。 我写的代码如下:
try { OleDbConnectionStringBuilder connStringBuilder = new OleDbConnectionStringBuilder(); connStringBuilder.DataSource = file; connStringBuilder.Provider = "Microsoft.Jet.OLEDB.4.0"; connStringBuilder.Add("Extended Properties", "Excel 8.0;HDR=NO;IMEX1"); DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb"); DbDataAdapter adapter = factory.CreateDataAdapter(); DbCommand selectCommand = factory.CreateCommand(); selectCommand.CommandText = "SELECT * FROM [All Carpets to Excel$]"; DbConnection connection = factory.CreateConnection(); connection.ConnectionString = connStringBuilder.ConnectionString; selectCommand.Connection = connection; adapter.SelectCommand = selectCommand; data = new DataSet(); adapter.Fill(data); dataGridView1.DataSource = data.Tables[0].DefaultView; } catch (IOException) { }
“selectCommand.CommandText =”SELECT * FROM [All Carpets to Excel $]“;” 从该名单的工作表中获取数据。 我想知道如何让这个程序打开任何工作表名称的Excel文档。 我可能不知道的一个。
提前致谢!
你可以得到所有的名单像这样..
public string[] GetExcelSheetNames(string excelFileName) { OleDbConnection con = null; DataTable dt = null; String conStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFileName + ";Extended Properties=Excel 8.0;"; con= new OleDbConnection(conStr); con.Open(); dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if (dt == null) { return null; } String[] excelSheetNames = new String[dt.Rows.Count]; int i = 0; foreach (DataRow row in dt.Rows) { excelSheetNames[i] = row["TABLE_NAME"].ToString(); i++; } return excelSheetNames; }
- 帮助奇怪的行为阅读Exceldate通过ole db连接
- OleDB和混合Excel数据types:缺less数据
- 使用VBA删除每个第2和第3行
- 导出数据集到Excel ASP.Net
- sortinga,b,c相当于sortingc; sortingb; sorting?
- C#Typed DataSets:OleDBDataAdapter使用Typed DataSet中的列名而不使用ExcelSheet
- 在VB.Net中将数据集导出到Excel的快速方法
- 如何使用Microsoft.Office.Interop.Excel从Excel导入到DataSet?
- excel表格中的超级脚本不在asp.net中的数据集中