c#后台怎么把6万行数据EXCEL导入EXCEL

求详细教程或代码... 求详细教程或代码 展开
 我来答
至上之上
2013-08-07 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:121
采纳率:50%
帮助的人:58.7万
展开全部
这是excel导入数据库的方法,也可以改成导入其他excel表中。
不废话,自己看,10W条数据导入时间不会超过1分钟。
string strCon = "";
string name = infor.FileName;//获取文件名
string xPath = infor.PostedFile.FileName; //获取完整客户端文件路径
string kzm = System.IO.Path.GetExtension(name);
string newName = DateTime.Now.ToString("yyyyMMddHHmmss") + kzm;
string filePath = Server.MapPath("~") + newName;
infor.PostedFile.SaveAs(filePath);
if (kzm.ToLower() == ".xlsx")
{
strCon = "Provider=MICROSOFT.ACE.OLEDB.12.0;" + "Data Source=" + filePath + ";" + "Extended Properties='Excel 12.0;HDR=Yes;IMEX=1'";
}
else if (kzm.ToLower() == ".xls")
{
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
}
else
{
ClientScript.RegisterStartupScript(GetType(), "msg", "<script>alert('请导入正确的Excel文件。')</script>");
System.IO.File.Delete(filePath);
return;
}
OleDbConnection OleConn = new OleDbConnection(strCon);
string sql = "SELECT * FROM [Sheet1$]";
DataSet ids = new DataSet();
try
{
OleConn.Open();
OleDbDataAdapter da = new OleDbDataAdapter(sql, strCon);
da.Fill(ids, "sheet1");
OleConn.Close();
System.IO.File.Delete(filePath);
}
catch
{
ClientScript.RegisterStartupScript(GetType(), "msg", "<script>alert('无法打开Excel文件,可能被其他程序占用,请关闭后再试。')</script>");
System.IO.File.Delete(filePath); return;
}
try
{
string str_Connection = ConfigurationManager.ConnectionStrings["GWMSRMV2ConnectionString"].ConnectionString;
SqlConnection orc = new SqlConnection(str_Connection);
orc.Open();
System.Diagnostics.Stopwatch timer = new System.Diagnostics.Stopwatch();
SqlBulkCopy sqlBC = new SqlBulkCopy(orc);
sqlBC.BatchSize = 100000;
sqlBC.DestinationTableName = "gyshf";
sqlBC.ColumnMappings.Add("" + ids.Tables["sheet1"].Rows[0][0].ToString() + "", "gysid");
sqlBC.ColumnMappings.Add("" + ids.Tables["sheet1"].Rows[0][1].ToString() + "", "hftxt");
sqlBC.ColumnMappings.Add("" + ids.Tables["sheet1"].Rows[0][2].ToString() + "", "hftype");
sqlBC.ColumnMappings.Add("" + ids.Tables["sheet1"].Rows[0][3].ToString() + "", "hffj");
timer.Start();
sqlBC.WriteToServer(ids.Tables[0]);
timer.Stop();
orc.Dispose();
ClientScript.RegisterStartupScript(GetType(), "msg", "<script>alert('" + timer.ElapsedMilliseconds.ToString() + "'毫秒)</script>");
}
catch
{
ClientScript.RegisterStartupScript(GetType(), "msg", "<script>alert('数据库连接失败!。')</script>");
}
finally
{
}
xjxzhmin
2013-08-06 · TA获得超过147个赞
知道小有建树答主
回答量:333
采纳率:100%
帮助的人:117万
展开全部
把excel充当数据库进行读取,然后在写入 。就这么简单。
需要注意的就是,读取写入时不同的excel版本,访问字符串不同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冬天之雪_
2013-08-06 · TA获得超过424个赞
知道小有建树答主
回答量:1304
采纳率:100%
帮助的人:592万
展开全部
楼主为什么要把excel再次导入到excel
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友32976ca66
2013-08-06 · 超过22用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:56.2万
展开全部
不明白,不如程序直接复制文件,另存为另外的文件名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式