C# 将excel导入到DataGridView上 (可以对数据进行操作)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 将excel导入到DataGridView上 (可以对数据进行操作)相关的知识,希望对你有一定的参考价值。
先拜大神!!!
RT求例子——求注释,还没达到看到代码就能知道每步作用的境界。
提前感谢咋个。
具体滴。。。
本回答被提问者和网友采纳 参考技术B public static DataTable ImportExcelToDataSet(string filePath)string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;Imex=1'";
DataTable dt = new DataTable();
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [message$]", strConn);
try
oada.Fill(dt);
catch (Exception ex)
throw new Exception("该Excel文件的工作表的名字设置为 message,以便获取数据" + ex.Message);
return dt;
这个就是吧excel到如到datatable中 然后你指定DataGridView的数据源是这个即可
默认情况下这个会吧excel第一行作为datatable的column,追问
测试可行,不过还有有问题要问你,那个在DataGridView中修改的数据怎么保存到excel中。。。
参考技术C NPOI 里面很详细了 我还真做过这个。。。追问亲,求程序
将任何 Excel 电子表格导入 DataGridView - C#
【中文标题】将任何 Excel 电子表格导入 DataGridView - C#【英文标题】:Importing Any Excel Spreadsheet into a DataGridView - C# 【发布时间】:2012-07-10 15:56:23 【问题描述】:我有一个将 Excel 电子表格导入数据网格视图的程序。我写的代码如下:
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 文档。一个我可能不知道的。
【问题讨论】:
【参考方案1】:您可以像这样获取所有工作表的名称..
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;
【讨论】:
虽然excel文件有多个工作表。 我认为可能是“foreach”语句。 当我调试时,它似乎完全跳过了 foreach 语句,只返回一个“null”字符串[]...嗯...以上是关于C# 将excel导入到DataGridView上 (可以对数据进行操作)的主要内容,如果未能解决你的问题,请参考以下文章
C#从excel表导入到datagridview 找不到可安装的 ISAM
c#编制程序把EXCEL文件导入DATAGRIDVIEW,结果运行后提示:外部表不是预期的格式。