Excel工作表中如何导入txt文件Word格式.docx
- 文档编号:16897044
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:13
- 大小:20.83KB
Excel工作表中如何导入txt文件Word格式.docx
《Excel工作表中如何导入txt文件Word格式.docx》由会员分享,可在线阅读,更多相关《Excel工作表中如何导入txt文件Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
查看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
{
//其中的FIELDTERMINATOR='
指明字段间所使用的分隔符为逗号
//其中ROWTERMINATOR='
指明记录间所使用的分隔符为回车
Response.Write("
<
scriptlanguage=javascript&
gt;
alert('
数据导入成功!
'
)<
/script>
}
catch(SqlExceptionSQLexc)
导入数据库时出错:
+SQLexc.ToString());
con.Close();
好了,这个txt文件的导入相对简单,在数据库中我也没有设置主键,我在里面也没有加出错回滚事务操作,在下面的excel文件的导入中介绍。
3.excel文件的导入
在c盘里建立一个stu.xls文件,在sheet1工作表中有两列数据如下:
1tom
2jack
3john
注意,工作表的第一行是作为标题行的不会被插入到数据库中,真正导入从第二行开始。
为了演示事物出错回滚,在这里将txtInsert数据库表中的id字段设置为主键。
实现的C#代码如下:
//注意下面的连接字符串,是它起到了导入的作用
SqlTransactionmyTran=con.BeginTransaction();
//开始一个事务操作excelCmd.Transaction=myTran;
excelCmd.ExecuteNonQuery();
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(),"
//显示出错信息框
导入数据库时出错!
详细信息:
+errString+"
这里“显示出错信息框”开始我没有田间那三行代码,结果搞了半天,最后还是在html文件中发现javascript代码部分出现了分行,老是提示“未结束的字符串常量”,所以导致不能打开信息框,郁闷死我了,花了好多时间。
4.将excel中部分列导入数据库的方法
上面讲了关于将整个excel文件导入数据库的方法,那么在实际项目中遇到将excel文件中若干列导入数据库怎么办的呢,原理差不多,我就将代码直接给出了:
stringfPath=this.fName.PostedFile.FileName;
//获得要导入的文本文
件
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;
pwd="
OleDbConnectionconn=newOleDbConnection(CnnString);
conn.Open();
strSql="
insertintotxtInsert(id,name)values("
strSql+=myDs.Tables[0].Rows[i].ItemArray[0].ToString()+"
'
strSql+=myDs.Tables[0].Rows[i].ItemArray[1].ToString()+"
)"
myCmd.ExecuteNonQuery
();
catch(OleDbExceptionerr)
+err.ToString());
break;
conn.Close();
第二篇范文:
excel导入导出通用方法
2.importjava.io.OutputStream;
3.importjava.util.List;
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./***
20.*/
21.publicclassExportExcel{
22./**************************************************************************
*
27.*/
28.publicfinalstaticStringexportExcel(StringfileName,String[]Title,Lis
t<
Object>
listContent){
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<
Title.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
2.
3.
4.importjava.io.FileOutputStream;
5.importjava.io.OutputStream;
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.
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)
46.
47.thrownewException("
传入参数不能为空!
48.
49.//声明一个工作薄
50.newHSSFWorkbook();
51.//生成一个表格
53.
54.
55.//标题
56.newArrayList<
String>
57.newArrayList<
Integer>
58.//拿到所有列名,以及导出的字段的get方法
59.newArrayList<
Method>
60.newHashMap<
String,Method>
61.//得到所有字段
62.
63.//遍历整个filed
64.for(inti=0;
fileds.length;
65.
66.class);
67.//如果设置了annottion
68.if(excel!
=null){
69.//添加到标题
70.
71.//添加标题的列宽
73.//添加到需要导出的字段的方法
74.
75.//System.out.println(i+"
列宽
+excel.exportName()+"
+excel.exportFieldWidth());
76.newStringBuffer("
get"
77.0,1)
78.
79.1));
80.
81.
82.
83.newClass[]{});
84.
85.
86.
87.if(excel.exportConvertSign()==1)
88.
89.newStringBuffer("
90.0,1)
91.
92.1));
93."
Convert"
94.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Excel 工作 如何 导入 txt 文件