Excel工作表中如何导入txt文件.docx
- 文档编号:8604787
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:14
- 大小:20.99KB
Excel工作表中如何导入txt文件.docx
《Excel工作表中如何导入txt文件.docx》由会员分享,可在线阅读,更多相关《Excel工作表中如何导入txt文件.docx(14页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Excel 工作 如何 导入 txt 文件
![提示](https://static.bdocx.com/images/bang_tan.gif)