1、Excel工作表中如何导入txt文件Excel2017工作表中如何导入.txt文件篇一:SQL 将txt文件导入sql数据库就一句sql代码搞定,导入sql2000的代码。BULK INSERT 表名 FROM F:你的文本文件.txt WITH ( FIELDTERMINATOR =以什么符号分割数据,ROWTERMINATOR= 以什么符号加n结尾)-n是回车的意思,就是回车前面是什么符号,如果没符号直接单引号n例如:BULK INSERT bb FROM F:2008-02-18.txt WITH ( FIELDTERMINATOR =, ROWTERMINATOR= ,n)bb是表名,
2、f盘中的F:2008-02-18.txt文件, FIELDTERMINATOR =,每个数据是以逗号分隔的,ROWTERMINATOR= ,n每行数据以逗号回车结尾。我导入过很多次。使用BULK INSERT用法如下:stu.txt 结构1,Jim2,Kate3,Tom.BULK INSERT dbo.TABLE1FROM d:stu.txtWITH (FIELDTERMINATOR = ,ROWTERMINATOR = n)查看table1里的数据select * from table1就ok了。在做一些web数据库管理系统的时候经常要实现将帐户批量注册的功能,今天就来讲讲如何在C#-web
3、项目中将txt文件和excel文件导入 SQL2000数据库。1.数据库准备在SQL2000数据库的实例数据库pubs中建立一个数据表txtInsert,字段很简 单:id,name两个。2.txt文本文件导入对于数据文件导入与导出SQL2000提供了BULK INSERT和BCP语句,在这里可以使用BULK INSERT命令实现。假设在c盘上有一个文本文件stu.txt内容为:1,tom2,jack3,jhon实现导入的C#代码如下:protected System.Web.UI.HtmlControls.HtmlInputFile fName;protected System.Web.UI
4、.WebControls.Button BtnInsert;/上面两个控件自己添加代码private void BtnInsert_Click(object sender, System.EventArgs e)string fPath=this.fName.PostedFile.FileName;/获得要导入的文本文件string extName=fPath.Substring(fPath.LastIndexOf(.)+1);/获得文件的扩展名SqlConnection con=new SqlConnection(server=.;database=pubs;uid=sa;pwd=;);/数
5、据库连接对象con.Open();trySqlCommand com=new SqlCommand(BULK INSERT pubs.dbo.txtInsert FROM +fPath+ WITH (FIELDTERMINATOR = ,ROWTERMINATOR= n),con);/其中的 FIELDTERMINATOR=,指明字段间所使用的分隔符为逗号/其中 ROWTERMINATOR= n指明记录间所使用的分隔符为回车com.ExecuteNonQuery();Response.Write(script language=javascript& gt;alert(数据导入成功!);cat
6、ch (SqlException SQLexc)Response.Write(导入数据库时出错: + SQLexc.ToString();con.Close();好了,这个txt文件的导入相对简单,在数据库中我也没有设置主键,我在里面也没有加出错回滚事务操作,在下面的excel文件的导入中介绍。3.excel 文件的导入在c盘里建立一个stu.xls文件,在sheet1工作表中有两列数据如下:编号 姓名1 tom2 jack3 john注 意,工作表的第一行是作为标题行的不会被插入到数据库中,真正导入从第二行开始。为了演示事物出错回滚,在这里将txtInsert数据库表中的 id字段设置为主键
7、。实现的C#代码如下:代码private void BtnInsert_Click(object sender, System.EventArgs e)string fPath=this.fName.PostedFile.FileName;/获得要导入的文本文件string extName=fPath.Substring(fPath.LastIndexOf(.)+1);/获得文件的扩展名SqlConnection con=new SqlConnection(server=.;database=pubs;uid=sa;pwd=;);/数据库连接对象con.Open();/注意下面的连接字符串,是
8、它起到了导入的作用SqlCommand excelCmd=new SqlCommand(insert into txtInsert select * from OPENROWSET(MICROSOFT.JET.OLEDB.4.0,Excel 5.0;HDR=YES;DATABASE=+fPath+,Sheet1$),con);SqlTransaction myTran=con.BeginTransaction();/开始一个事务操作 excelCmd.Transaction=myTran;tryexcelCmd.ExecuteNonQuery();myTran.Commit();/提交事务Re
9、sponse.Write(script language=javascript& gt;alert(数据导入成功!);catch (SqlException err)myTran.Rollback(); /出错回滚事务操作/以下三行是去掉数据库出错信息中的非法字符单引号、回车和换行符,否则在使用时 javascript代码将有语法错误/因为js的编码和c#的编码不同string errString=err.Message.Replace(, );errString=errString.Replace(Convert.ToChar(13).ToString(),);errString=errSt
10、ring.Replace(Convert.ToChar(10).ToString(),);/显示出错信息框Response.Write(script language=javascript& gt;alert(导入数据库时出错!详细信息:+errString+);con.Close();这里“显示出错信息框”开始我没有田间那三行代码,结果搞了半天,最后还是在html文件中发现javascript代码部分出现了分行,老是提示“未结 束的字符串常量”,所以导致不能打开信息框,郁闷死我了,花了好多时间。4.将excel中部分列导入数据库的方法上面讲了关于将整个 excel文件导入数据库的方法,那么在
11、实际项目中遇到将excel文件中若干列导入数据库怎么办的呢,原理差不多,我就将代码直接给出了:代码stringfPath=this.fName.PostedFile.FileName;/获得要导入的文本文件string extName=fPath.Substring(fPath.LastIndexOf(.)+1);/获得文件的扩展名SqlConnection con=new SqlConnection(server=.;database=pubs;uid=sa;pwd=;);/数据库连接对象con.Open();string mystring=Provider = Microsoft.Jet.
12、OLEDB.4.0 ; Data Source = +fPath+;Extended Properties=Excel 8.0;OleDbConnection cnnxls = new OleDbConnection (mystring);OleDbDataAdapter myDa =new OleDbDataAdapter(select * from Sheet1$,cnnxls);DataSet myDs =new DataSet();myDa.Fill(myDs);if(myDs.Tables0.Rows.Count 0)string strSql = ;string CnnString
13、=Provider=SQLOLEDB;database=pubs;server=.;uid=sa;pwd=;OleDbConnection conn =new OleDbConnection(CnnString);conn.Open ();OleDbCommand myCmd =null; for(int i=0; imyDs.Tables0.Rows.Count;i+)/第一个工作表中行数,不包括第一行,strSql=insert into txtInsert(id,name) values (;strSql += myDs.Tables0.Rowsi.ItemArray0.ToString
14、() + , ;strSql += myDs.Tables0.Rowsi.ItemArray1.ToString() + );myCmd=new OleDbCommand(strSql,conn);trymyCmd.ExecuteNonQuery();Response.Write(script language=javascript& gt;alert(数据导入成功!);catch (OleDbException err)Response.Write(导入数据库时出错: +err.ToString();break;conn.Close();篇二:excel导入导出通用方法1. package
15、mon.utils;2. import java.io.OutputStream;3. import java.util.List;4. import javax.servlet.http.HttpServletResponse;5. import org.apache.struts2.ServletActionContext;6. import java.lang.reflect.Field;7.8. import jxl.Workbook;9. import jxl.format.Alignment;10. import jxl.format.Border;11. import jxl.f
16、ormat.BorderLineStyle;12. import jxl.format.VerticalAlignment;13. import jxl.write.Label;14. import jxl.write.WritableCellFormat;15. import jxl.write.WritableFont;16. import jxl.write.WritableSheet;17. import jxl.write.WritableWorkbook;18. /*19. * author lsf20. */21. public class ExportExcel 22. /*2
17、3.* param fileName EXCEL文件名称24.* param listTitle EXCEL文件第一行列标题集合25.* param listContent EXCEL文件正文数据集合26.* return27.*/28. public final static String exportExcel(String fileName,String Title, List listContent) 29.String result=系统提示:Excel文件导出成功!;30./ 以下开始输出到EXCEL31.try 32. /定义输出流,以便打开保存对话框_begin33. Http
18、ServletResponse response=ServletActionContext.getResponse();34. OutputStream os = response.getOutputStream();/ 取得输出流35. response.reset();/ 清空输出流36. response.setHeader(Content-disposition, attachment; filename=+ new String(fileName.getBytes(GB2312),ISO8859-1);37. / 设定输出文件头38. response.setContentType(
19、application/msexcel);/ 定义输出类型39. /定义输出流,以便打开保存对话框_end40.41. /* *创建工作簿* */42. WritableWorkbook workbook = Workbook.createWorkbook(os);43.44. /* *创建工作表* */45.46. WritableSheet sheet = workbook.createSheet(Sheet1, 0);47.48. /* *设置纵横打印(默认为纵打)、打印纸* */49. jxl.SheetSettings sheetset = sheet.getSettings();5
20、0. sheetset.setProtected(false);51.52.53. /* *设置单元格字体* */54. WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10);55. WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10,WritableFont.BOLD);56.57. /* *以下设置三种单元格样式,灵活备用* */58. / 用于标题居中59. WritableCellFormat wcf_center = new Wr
21、itableCellFormat(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. WritableCellFormat wcf_le
22、ft = new WritableCellFormat(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.
23、/sheet.mergeCells(0, 0, colWidth, 0);75. /sheet.addCell(new Label(0, 0, XX报表, wcf_center);76. /* *以下是EXCEL第一行列标题* */77. for (int i = 0; i Title.length; i+) 78. sheet.addCell(new Label(i, 0,Titlei,wcf_center);79. 80. /* *以下是EXCEL正文数据* */81. Field fields=null;82. int i=1;83. for(Object obj:listContent
24、)84. fields=obj.getClass().getDeclaredFields();85. int j=0;86. for(Field v:fields)87.v.setAccessible(true);88.Object va=v.get(obj);89.if(va=null)90. va=;91.92.sheet.addCell(new Label(j, i,va.toString(),wcf_left);93.j+;94. 95. i+;96. 97. /* *将以上缓存中的内容写到EXCEL文件中* */98. workbook.write();99. /* *关闭文件* *
25、/100. workbook.close();101.102. catch (Exception e) 103. result=系统提示:Excel文件导出失败,原因:+ e.toString();104. System.out.println(result);105. e.printStackTrace();106.107.return result;108. 109. 3.通用导出:java view plaincopy1. package mon.excel.parser;2.3.4. import java.io.FileOutputStream;5. import java.io.O
26、utputStream;6. import java.lang.reflect.Field;7. import java.lang.reflect.Method;8. import java.util.ArrayList;9. import java.util.Collection;10. import java.util.Date;11. import java.util.HashMap;12. import java.util.Iterator;13. import java.util.List;14. import java.util.Map;15.16.17. import org.a
27、pache.poi.hssf.usermodel.HSSFRichTextString;18. import org.apache.poi.hssf.usermodel.HSSFWorkbook;19. import org.apache.poi.ss.usermodel.Cell;20. import org.apache.poi.ss.usermodel.RichTextString;21. import org.apache.poi.ss.usermodel.Row;22. import org.apache.poi.ss.usermodel.Sheet;23. import org.a
28、pache.poi.ss.usermodel.Workbook;24.25.26. import com.huateng.test.pojo.Student;27.28.29. public class ExcelExport2 30.31.32. public static void exportExcel(String title, Class pojoClass,Collection dataSet,33.34. /使用userModel模式实现的,当excel文档出现10万级别的大数据文件可能导致OOM内存溢出35.36. /使用eventModel实现,可以一边读一边处理,效率较高,但是实现复杂,暂时未实现37.38. private static void exportExcelInUserModel(String title, Class pojoClass,Collection dataSet,39.40. try 41. / 首先检查数据看是否是正确的42. if (dataSet = null | dataSet.size()=0) 43. throw new Exception(导出数据为空!);44.45. if(title = null | out = null | pojoClass = null)4
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1