Winform excel导入问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Winform excel导入问题相关的知识,希望对你有一定的参考价值。
如何把excel数据导入到datagridview 并写入access数据库
excel数据导入到datagridview这一步是实现了 表头数据也都能在datagridview中显示 但是数据并没有写入数据库
给个例子 看看呀 是哪出错了
并且将dataset便利后 存入数据库更方便
public DataSet ImportExcel(string strFileName)
if (strFileName != "")
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFileName + ";Extended Properties=Excel 8.0";
string sql = "select * from [Sheet1$]";
OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
DataSet ds = new DataSet();
try
da.Fill(ds, "datatable");
catch
return ds;
else
return null;
这个是 execl读取后生成ds的方法。strFileName 是你的execl名字
[Sheet1$]是你execl中表的名字
转换成dataset追问
我也是这么写的 我想要实现的是将导入的数据插入到数据库
追答public static void Insert(DataSet ds)
string sql = "insert into 你的表明 select";
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
if (j != ds.Tables[0].Columns.Count - 1)
sql += " '" + ds.Tables[0].Rows[i][j] + "',";
else
sql += " '" + ds.Tables[0].Rows[i][j] + "' ";
if (i != ds.Tables[0].Rows.Count - 1)
sql += "union select";
这个程序已经测试过,不过其中也同样会插入主键列,
出现的SQL语句是可以执行的,SQL语句插入,也就是你command方法的事了,你自行添加吧
我只是提供一个思路
你看看吧
string strSql = "";
strSql = "insert into target values ('";
strSql += Ds.Tables[0].Rows[i].ItemArray[0].ToString() + "','";
strSql += Ds..Tables[0].Rows[i].ItemArray[1].ToString().Substring(2, 2).Trim())+ "','";
strSql += Ds.Tables[0].Rows[i].ItemArray[2].ToString() + "','";
strSql += Ds.Tables[0].Rows[i].ItemArray[3].ToString() + "','";
strSql += Ds.Tables[0].Rows[i].ItemArray[4].ToString() + "')";
try
num += this.Conn.update(strSql);
catch
你只是把数据放到datatable里面去了,没有放到数据库,要用insert语句插入数据库 ,你少了插入数据库的语句本回答被提问者采纳
各位仁兄,我想请教一下在C#winform中,datagridview如何导出excel文件,将excel导入datagridview.
就是一个窗体里面有一个带有几行数据的datagridview,窗体里面还有两个“导入”“导出”按钮。点击“导出”可以选择保存路径等,点击“导入”可以选择excel文件,然后将数据导入datagridview,小弟初学,希望各位仁兄帮帮忙。我不惜重金希望能得到比较容易理解的源代码
导出的时候我希望能用到Microsoft.Office.Interop.Excel.Application 应该怎样啊,导入的时候有没有比较详细的源代码
需要引用using System.Data.OleDb
导入
DataTable dt = new DataTable("default");
string strExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + @FileName + ";Extended Properties=Excel 8.0;";
OleDbConnection connExecel = new OleDbConnection(strExcel);
OleDbDataAdapter oledbDA = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connExecel);
connExecel.Open();
oledbDA .Fill(dt);
datagridview.DataSource = dt;
connExecel.Close ();
导出:
是导入的逆过程,自己想一下因该知道了,要不然就要转行啦。
你也可以引用Excel的类库直接操作Excel文档 参考技术A 取出datagridview的datasource,然后然后可以引用Excel的Dll创建Excel实例。遍历数据源,逐格填写。
以上是关于Winform excel导入问题的主要内容,如果未能解决你的问题,请参考以下文章
C# 自己写的Winform程序批量导入Excel文件到Oracle数据库的过程中,程序运行会很慢!而且Winform窗体会卡
各位仁兄,我想请教一下在C#winform中,datagridview如何导出excel文件,将excel导入datagridview.