Excel工作表中如何导入txt文件.docx

上传人:b****6 文档编号:7788994 上传时间:2023-01-26 格式:DOCX 页数:14 大小:20.99KB
下载 相关 举报
Excel工作表中如何导入txt文件.docx_第1页
第1页 / 共14页
Excel工作表中如何导入txt文件.docx_第2页
第2页 / 共14页
Excel工作表中如何导入txt文件.docx_第3页
第3页 / 共14页
Excel工作表中如何导入txt文件.docx_第4页
第4页 / 共14页
Excel工作表中如何导入txt文件.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Excel工作表中如何导入txt文件.docx

《Excel工作表中如何导入txt文件.docx》由会员分享,可在线阅读,更多相关《Excel工作表中如何导入txt文件.docx(14页珍藏版)》请在冰豆网上搜索。

Excel工作表中如何导入txt文件.docx

Excel工作表中如何导入txt文件

Excel2021工作表中如何导入.txt文件

篇一:

SQL将txt文件导入sql数据库

就一句sql代码搞定,导入sql2000的代码。

BULKINSERT表名FROM‘F:

\你的文本文件.txt’WITH(FIELDTERMINATOR=‘以什么符号分割数据’,

ROWTERMINATOR=‘以什么符号加\n结尾’)--\n是回车的意思,就是回车前面是什么符号,如果没符号直接单引号\n

例如:

BULKINSERTbbFROM‘F:

\2008-02-18.txt’WITH(FIELDTERMINATOR=‘,’,ROWTERMINATOR=‘,\n’)

bb是表名,f盘中的F:

\2008-02-18.txt文件,FIELDTERMINATOR=‘,’每个数据是以逗号分隔的,

ROWTERMINATOR=‘,\n’每行数据以逗号回车结尾。

我导入过很多次。

使用BULKINSERT

用法如下:

stu.txt结构

1,Jim

2,Kate

3,Tom

...

BULKINSERTdbo.TABLE1

FROM‘d:

\stu.txt’

WITH(

FIELDTERMINATOR=‘,’,

ROWTERMINATOR=‘\n’

查看table1里的数据

select*fromtable1

就ok了。

在做一些web数据库管理系统的时候经常要实现将帐户批量注册的功能,今天就来讲讲如何在C#-web项目中将txt文件和excel文件导入SQL2000数据库。

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.ButtonBtnInsert;

//上面两个控件自己添加

代码

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

{

SqlCommandcom=newSqlCommand(BULKINSERTpubs.dbo.txtInsertFROM‘+fPath+’WITH(FIELDTERMINATOR=‘,’,ROWTERMINATOR=‘\n’),con);

//其中的FIELDTERMINATOR=‘,’指明字段间所使用的分隔符为逗号

//其中ROWTERMINATOR=‘\n’指明记录间所使用的分隔符为回车

com.ExecuteNonQuery();

Response.Write(scriptlanguage=javascriptgt;alert(‘数据导入成功!

’)/script);

}

catch(SqlExceptionSQLexc)

{

Response.Write(导入数据库时出错:

+SQLexc.ToString());

}

con.Close();

}

好了,这个txt文件的导入相对简单,在数据库中我也没有设置主键,我在里面也没有加出错回滚事务操作,在下面的excel文件的导入中介绍。

3.excel文件的导入

在c盘里建立一个stu.xls文件,在sheet1工作表中有两列数据如下:

编号姓名

1tom

2jack

3john

注意,工作表的第一行是作为标题行的不会被插入到数据库中,真正导入从第二行开始。

为了演示事物出错回滚,在这里将txtInsert数据库表中的id字段设置为主键。

实现的C#代码如下:

代码

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();

//注意下面的连接字符串,是它起到了导入的作用

SqlCommandexcelCmd=newSqlCommand(insertintotxtInsertselect*fromOPENROWSET(‘MICROSOFT.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(scriptlanguage=javascriptgt;alert(‘数据导入成功!

’)/script);

}

catch(SqlExceptionerr)

{

myTran.Rollback();//出错回滚事务操作

//以下三行是去掉数据库出错信息中的非法字符单引号、回车和换行符,否则在使用时javascript代码将有语法错误

//因为js的编码和c#的编码不同

stringerrString=err.Message.Replace(‘,);

errString=errString.Replace(Convert.ToChar(13).ToString(),);errString=errString.Replace(Convert.ToChar(10).ToString(),);//显示出错信息框

Response.Write(scriptlanguage=javascriptgt;alert(‘导入数据库时出错!

详细信息:

+errString+’)/script);

}

con.Close();

}

这里“显示出错信息框”开始我没有田间那三行代码,结果搞了半天,最后还是在html文件中发现javascript代码部分出现了分行,老是提示“未结束的字符串常量”,所以导致不能打开信息框,郁闷死我了,花了好多时间。

4.将excel中部分列导入数据库的方法

上面讲了关于将整个excel文件导入数据库的方法,那么在实际项目中遇到将excel文件中若干列导入数据库怎么办的呢,原理差不多,我就将代码直接给出了:

代码

stringfPath=this.fName.PostedFile.FileName;//获得要导入的文本文

stringextName=fPath.Substring(fPath.LastIndexOf(.)+1);//获得文件的扩展名

SqlConnectioncon=newSqlConnection(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*from[Sheet1$],cnnxls);

DataSetmyDs=newDataSet();

myDa.Fill(myDs);

if(myDs.Tables[0].Rows.Count0)

{

stringstrSql=;

stringCnnString=Provider=SQLOLEDB;database=pubs;server=.;uid=sa;pwd=;

OleDbConnectionconn=newOleDbConnection(CnnString);

conn.Open();

OleDbCommandmyCmd=null;for(inti=0;imyDs.Tables[0].Rows.Count;i++)//第一个工作表中行数,不包括第一行,

{

strSql=insertintotxtInsert(id,name)values(;

strSql+=myDs.Tables[0].Rows[i].ItemArray[0].ToString()+,‘;

strSql+=myDs.Tables[0].Rows[i].ItemArray[1].ToString()+‘);

myCmd=newOleDbCommand(strSql,conn);

try

{

myCmd.ExecuteNonQuery

();

Response.Write(scriptlanguage=javascriptgt;alert(‘数据导入成功!

’)/script);

}

catch(OleDbExceptionerr)

{

Response.Write(导入数据库时出错:

+err.ToString());

break;

}

}

conn.Close();

篇二:

excel导入导出通用方法

1.packageoamon.utils;

2.importjava.io.OutputStream;

3.importjava.util.List;

4.importjavax.servlet..HttpServletResponse;

5.importorg.apache.struts2.ServletActionContext;

6.importjava.lang.reflect.Field;

7.

8.importjxl.Workbook;

9.importjxl.format.Alignment;

10.importjxl.format.Border;

11.importjxl.format.BorderLineStyle;

12.importjxl.format.VerticalAlignment;

13.importjxl.write.Label;

14.importjxl.write.WritableCellFormat;

15.importjxl.write.WritableFont;

16.importjxl.write.WritableSheet;

17.importjxl.write.WritableWorkbook;

18./***

19.*@authorlsf

20.*/

21.publicclassExportExcel{

22./**************************************************************************

*

23.*@paramfileNameEXCEL文件名称

24.*@paramlistTitleEXCEL文件第一行列标题集合

25.*@paramlistContentEXCEL文件正文数据集合

26.*@return

27.*/

28.publicfinalstaticStringexportExcel(StringfileName,String[]Title,Lis

tObjectlistContent){

29.Stringresult=系统提示:

Excel文件导出成功!

;

30.//以下开始输出到EXCEL

31.try{

32.//定义输出流,以便打开保存对话框______________________begin

33.HttpServletResponseresponse=ServletActionContext.getResponse();

34.OutputStreamos=response.getOutputStream();//取得输出流

35.response.reset();//清空输出流

36.response.setHeader(Content-disposition,attachment;filename=+newSt

ring(fileName.getBytes(GB2312),ISO8859-1));

37.//设定输出文件头

38.response.setContentType(application/msexcel);//定义输出类型

39.//定义输出流,以便打开保存对话框_______________________end

40.

41./************创建工作簿*************/

42.WritableWorkbookworkbook=Workbook.createWorkbook(os);

43.

44./************创建工作表*************/

45.

46.WritableSheetsheet=workbook.createSheet(Sheet1,0);

47.

48./************设置纵横打印(默认为纵打)、打印纸******************/

49.jxl.SheetSettingssheetset=sheet.getSettings();

50.sheetset.setProtected(false);

51.

52.

53./**************设置单元格字体***************/

54.WritableFontNormalFont=newWritableFont(WritableFont.ARIAL,10);

55.WritableFontBoldFont=newWritableFont(WritableFont.ARIAL,10,WritableF

ont.BOLD);

56.

57./**************以下设置三种单元格样式,灵活备用*************/

58.//用于标题居中

59.WritableCellFormatwcf_center=newWritableCellFormat(BoldFont);

60.wcf_center.setBorder(Border.ALL,BorderLineStyle.THIN);//线条

61.wcf_center.setVerticalAlignment(VerticalAlignment.CENTRE);//文字垂直对

62.wcf_center.setAlignment(Alignment.CENTRE);//文字水平对齐

63.wcf_center.setWrap(false);//文字是否换行

64.

65.//用于正文居左

66.WritableCellFormatwcf_left=newWritableCellFormat(NormalFont);

67.wcf_left.setBorder(Border.NONE,BorderLineStyle.THIN);//线条

68.wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE);//文字垂直对齐

69.wcf_left.setAlignment(Alignment.LEFT);//文字水平对齐

70.wcf_left.setWrap(false);//文字是否换行

71.

72.

73./*****************以下是EXCEL开头大标题,暂时省略**********************/

74.//sheet.mergeCells(0,0,colWidth,0);

75.//sheet.addCell(newLabel(0,0,XX报表,wcf_center));

76./*****************以下是EXCEL第一行列标题**********************/

77.for(inti=0;iTitle.length;i++){

78.sheet.addCell(newLabel(i,0,Title[i],wcf_center));

79.}

80./*****************以下是EXCEL正文数据**********************/

81.Field[]fields=null;

82.inti=1;

83.for(Objectobj:

listContent){

84.fields=obj.getClass().getDeclaredFields();

85.intj=0;

86.for(Fieldv:

fields){

87.v.setAccessible(true);

88.Objectva=v.get(obj);

89.if(va==null){

90.va=;

91.}

92.sheet.addCell(newLabel(j,i,va.toString(),wcf_left));

93.j++;

94.}

95.i++;

96.}

97./************将以上缓存中的内容写到EXCEL文件中*********/

98.workbook.write();

99./***********关闭文件**************/

100.workbook.close();

101.

102.}catch(Exceptione){

103.result=系统提示:

Excel文件导出失败,原因:

+e.toString();

104.System.out.println(result);

105.e.printStackTrace();

106.}

107.returnresult;

108.}

109.}

3.通用导出:

[java]viewplaincopy

1.packagecom.huatengmon.excel.parser;

2.

3.

4.importjava.io.FileOutputStream;

5.importjava.io.OutputStream;

6.importjava.lang.reflect.Field;

7.importjava.lang.reflect.Method;

8.importjava.util.ArrayList;

9.importjava.util.Collection;

10.importjava.util.Date;

11.importjava.util.HashMap;

12.importjava.util.Iterator;

13.importjava.util.List;

14.importjava.util.Map;

15.

16.

17.importorg.apache.poi.hssf.usermodel.HSSFRichTextString;

18.importorg.apache.poi.hssf.usermodel.HSSFWorkbook;

19.importorg.apache.poi.ss.usermodel.Cell;

20.importorg.apache.poi.ss.usermodel.RichTextString;

21.importorg.apache.poi.ss.usermodel.Row;

22.importorg.apache.poi.ss.usermodel.Sheet;

23.importorg.apache.poi.ss.usermodel.Workbook;

24.

25.

26.importcom.huateng.test.pojo.Student;

27.

28.

29.publicclassExcelExport2{

30.

31.

32.publicstaticvoidexportExcel(Stringtitle,Classpojo

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1