Winform excel导入问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Winform excel导入问题相关的知识,希望对你有一定的参考价值。

如何把excel数据导入到datagridview 并写入access数据库

excel数据导入到datagridview这一步是实现了 表头数据也都能在datagridview中显示 但是数据并没有写入数据库
给个例子 看看呀 是哪出错了

参考技术A 其实 你将execl读入到 dataset,然后绑定到 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方法的事了,你自行添加吧
我只是提供一个思路
你看看吧

参考技术B for (int i = 0; i < Ds.Tables[0].Rows.Count; i++)

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

c# WINFORM 导入EXCEL数据覆盖问题

C#Winform怎么将excel一列数据导入程序中

[zz]winform导入excel

C# 自己写的Winform程序批量导入Excel文件到Oracle数据库的过程中,程序运行会很慢!而且Winform窗体会卡

各位仁兄,我想请教一下在C#winform中,datagridview如何导出excel文件,将excel导入datagridview.