2019年excel工作表中如何导入.txt文件

上传人:明*** 文档编号:95027859 上传时间:2019-08-14 格式:DOC 页数:36 大小:473.18KB
返回 下载 相关 举报
2019年excel工作表中如何导入.txt文件_第1页
第1页 / 共36页
2019年excel工作表中如何导入.txt文件_第2页
第2页 / 共36页
2019年excel工作表中如何导入.txt文件_第3页
第3页 / 共36页
2019年excel工作表中如何导入.txt文件_第4页
第4页 / 共36页
2019年excel工作表中如何导入.txt文件_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《2019年excel工作表中如何导入.txt文件》由会员分享,可在线阅读,更多相关《2019年excel工作表中如何导入.txt文件(36页珍藏版)》请在金锄头文库上搜索。

1、2019年Excel工作表中如何导入.txt文件 篇一:SQL将txt文件导入sql数据库 就一句sql代码搞定,导入sql2000的代码。 BULKINSERT表名FROMF:你的文本文件.txtWITH(FIELDTERMINATOR=以什么符号分割数据, ROWTERMINATOR=以什么符号加n结尾)-n是回车的意思,就是回车前面是什么符号,如果没符号直接单引号n 例如:BULKINSERTbbFROMF:20XX-02-18.txtWITH(FIELDTERMINATOR=,ROWTERMINATOR=,n) bb是表名,f盘中的F:20XX-02-18.txt文件,FIELDTER

2、MINATOR=,每个数据是以逗号分隔的, ROWTERMINATOR=,n每行数据以逗号回车结尾。 我导入过很多次。 使用BULKINSERT 用法如下: stu.txt结构 1,Jim 2,Kate 3,Tom . BULKINSERTdbo.TABLE1 FROMd:stu.txt WITH( FIELDTERMINATOR=, ROWTERMINATOR=n ) 查看table1里的数据 select*fromtable1 就ok了。 在做一些web数据库管理系统的时候经常要实现将帐户批量注册的功能,今天就来讲讲如何在C#-web项目中将txt文件和excel文件导入SQL2000数据

3、库。 1.数据库准备 在SQL2000数据库的实例数据库pubs中建立一个数据表txtInsert,字段很简单:id,name两个。 2.txt文本文件导入 对于数据文件导入与导出SQL2000提供了BULKINSERT和BCP语句,在这里可以使用BULKINSERT命令实现。假设在c盘上有一个文本文件stu.txt内容为: 1,tom 2,jack 3,jhon 实现导入的C#代码如下: protectedSystem.Web.UI.HtmlControls.HtmlInputFilefName; protectedSystem.Web.UI.WebControls.ButtonBtnIns

4、ert; /上面两个控件自己添加 代码 privatevoidBtnInsert_Click(objectsender,System.EventArgse) stringfPath=this.fName.PostedFile.FileName;/获得要导入的文本文件 stringextName=fPath.Substring(fPath.LastIndexOf(.)+1);/获得文件的扩展名 SqlConnectioncon=newSqlConnection(server=.;database=pubs;uid=sa;pwd=;);/数据库连接对象 con.Open(); try SqlCom

5、mand=newSqlCommand(BULKINSERTpubs.dbo.txtInsertFROM+fPath+WITH(FIELDTERMINATOR=,ROWTERMINATOR=n),con); /其中的FIELDTERMINATOR=,指明字段间所使用的分隔符为逗号 /其中ROWTERMINATOR=n指明记录间所使用的分隔符为回车 .ExecuteNonQuery(); Response.Write(); catch(SqlExceptionSQLexc) Response.Write(导入数据库时出错:+SQLexc.ToString(); con.Close(); 好了,这个

6、txt文件的导入相对简单,在数据库中我也没有设置主键,我在里面也没有加出错回滚事务操作,在下面的excel文件的导入中介绍。 3.excel文件的导入 在c盘里建立一个stu.xls文件,在sheet1工作表中有两列数据如下: 编号姓名 1tom 2jack 3john 注意,工作表的第一行是作为标题行的不会被插入到数据库中,真正导入从第二行开始。 为了演示事物出错回滚,在这里将txtInsert数据库表中的id字段设置为主键。实现的C#代码如下: 代码 privatevoidBtnInsert_Click(objectsender,System.EventArgse) stringfPath

7、=this.fName.PostedFile.FileName;/获得要导入的文本文件 stringextName=fPath.Substring(fPath.LastIndexOf(.)+1);/获得文件的扩展名 SqlConnectioncon=newSqlConnection(server=.;database=pubs;uid=sa;pwd=;);/数据库连接对象 con.Open(); /注意下面的连接字符串,是它起到了导入的作用 SqlCommandexcelCmd=newSqlCommand(insertintotxtInsertselect*fromOPENROWSET(MIC

8、ROSOFT.JET.OLEDB.4.0,Excel5.0;HDR=YES;DATABASE=+fPath+,Sheet1$),con); SqlTransactionmyTran=con.BeginTransaction();/开始一个事务操作excelCmd.Transaction=myTran; try excelCmd.ExecuteNonQuery(); myTran.Commit();/提交事务 Response.Write(); catch(SqlExceptionerr) myTran.Rollback();/出错回滚事务操作 /以下三行是去掉数据库出错信息中的非法字符单引号、

9、回车和换行符,否则在使用时javascript代码将有语法错误 /因为js的编码和c#的编码不同 stringerrString=err.Message.Replace(,); errString=errString.Replace(Convert.ToChar(13).ToString(),);errString=errString.Replace(Convert.ToChar(10).ToString(),);/显示出错信息框 Response.Write(); con.Close(); 这里“显示出错信息框”开始我没有田间那三行代码,结果搞了半天,最后还是在html文件中发现javasc

10、ript代码部分出现了分行,老是提示“未结束的字符串常量”,所以导致不能打开信息框,郁闷死我了,花了好多时间。 4.将excel中部分列导入数据库的方法 上面讲了关于将整个excel文件导入数据库的方法,那么在实际项目中遇到将excel文件中若干列导入数据库怎么办的呢,原理差不多,我就将代码直接给出了: 代码 stringfPath=this.fName.PostedFile.FileName;/获得要导入的文本文 件 stringextName=fPath.Substring(fPath.LastIndexOf(.)+1);/获得文件的扩展名 SqlConnectioncon=newSqlC

11、onnection(server=.;database=pubs;uid=sa;pwd=;);/数据库连接对象 con.Open(); stringmystring=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=+fPath+;ExtendedProperties=Excel8.0; OleDbConnectioncnnxls=newOleDbConnection(mystring); OleDbDataAdaptermyDa=newOleDbDataAdapter(select*fromSheet1$,cnnxls); DataSetmyDs=new

12、DataSet(); myDa.Fill(myDs); if(myDs.Tables0.Rows.Count0) stringstrSql=; stringCnnString=Provider=SQLOLEDB;database=pubs;server=.;uid=sa;pwd=; OleDbConnectionconn=newOleDbConnection(CnnString); conn.Open(); OleDbCommandmyCmd=null;for(inti=0;i strSql=insertintotxtInsert(id,name)values(; strSql+=myDs.Tables0.Rowsi.ItemArray0.ToString()+,; strSql+=myDs.Tables0.Rowsi.ItemArray1.ToString()+); myCmd=newOleDbCommand(strSql,conn); try myCmd.ExecuteNonQu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号