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

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

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

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

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

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

Excel2017工作表中如何导入.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("

')");

}

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("

')");

}

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("

详细信息:

"+errString+"')");

}

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.Count>0)

{

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.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("

')");

}

catch(OleDbExceptionerr)

{

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

"+err.ToString());

break;

}

}

conn.Close();

篇二:

excel导入导出通用方法

1.packagemon.utils;

2.importjava.io.OutputStream;

3.importjava.util.List;

4.importjavax.servlet.http.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

tlistContent){

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;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.packagemon.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,ClasspojoClass,Collectiondata

Set,

33.

34.//使用userModel模式实现的,当excel文档出现10万级别的大数据文件可能导致OOM内存溢

35.

36.//使用eventModel实现,可以一边读一边处理,效率较高,但是实现复杂,暂时未实现

37.

38.privatestaticvoidexportExcelInUserModel(Stringtitle,ClasspojoClass,Col

lectiondataSet,

39.

40.try{

41.//首先检查数据看是否是正确的

42.if(dataSet==null||dataSet.size()==0){

43.thrownewException("导出数据为空!

");

44.

45.if(title==null||out==null||pojoClass==null)

4

展开阅读全文
相关搜索

当前位置:首页 > PPT模板 > 动物植物

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

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