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

Excel2017工作表中如何导入.txt文件
Excel2017工作表中如何导入.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 是表名,f 盘中的 F:\2008-02-18.txt 文件,FIELDTERMINATOR =','每个数据是以逗号分 隔的, ROWTERMINATOR= ',\n'每行数据以逗号回车结尾。 我导入过很多次。 使用 BULK INSERT 用法如下: stu.txt 结构 1,Jim 2,Kate 3,Tom ... BULK INSERT dbo.TABLE1 FROM 'd:\stu.txt' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' ) 查看 table1 里的数据 select * from table1 就 ok 了。 在做一些 web 数据库管理系统的时候经常要实现将帐户批量注册的功能,今天就来讲讲 如何在 C#-web 项目中将 txt 文件和 excel 文件导入 SQL2000 数据库。 1.数据库准备 在 SQL2000 数据库的实例数据库 pubs 中建立一个数据表 txtInsert, 字段很简 单: id, name 两个。 1 / 13

2.txt 文本文件导入 对于数据文件导入与导出 SQL2000 提供了 BULK INSERT 和 BCP 语句, 在这里可以使用 BULK INSERT 命令实现。假设在 c 盘上有一个文本文件 stu.txt 内容为: 1,tom 2,jack 3,jhon 实现导入的 C#代码如下: protected System.Web.UI.HtmlControls.HtmlInputFile fName; protected System.Web.UI.WebControls.Button BtnInsert; //上面两个控件自己添加 代码 private void BtnInsert_Click(object sender, System.EventArgs e){ string fPath=this.fName.PostedFile.FileName;//获得要导入的文本文件 string extName=fPath.Substring(https://www.360docs.net/doc/3713517743.html,stIndexOf(".")+1);//获得文件的扩展名 SqlConnection con=new SqlConnection("server=.;database=pubs;uid=sa;pwd=;");// 数据库连 接对象 con.Open(); try { SqlCommand com=new SqlCommand("BULK INSERT pubs.dbo.txtInsert FROM '"+fPath+"' WITH(FIELDTERMINATOR = ',',ROWTERMINATOR= '\n')",con); //其中的 FIELDTERMINATOR=','指明字段间所使用的分隔符为逗号 //其中 ROWTERMINATOR= '\n'指明记录间所使用的分隔符为回车 com.ExecuteNonQuery(); Response.Write(""); } catch (SqlException SQLexc) { Response.Write("导入数据库时出错:" + SQLexc.ToString()); } con.Close(); } 好了,这个 txt 文件的导入相对简单,在数据库中我也没有设置主键,我在里面也没有加 出错回滚事务操作,在下面的 excel 文件的导入中介绍。 3.excel 文件的导入 在 c 盘里建立一个 stu.xls 文件,在 sheet1 工作表中有两列数据如下: 编号姓名 1tom 2 / 13

2jack 3john 注 意, 工作表的第一行是作为标题行的不会被插入到数据库中, 真正导入从第二行开始。 为了演示事物出错回滚,在这里将 txtInsert 数据库表中的 id 字段设置为主键。实现的 C#代码如下: 代码 private void BtnInsert_Click(object sender, System.EventArgs e){ string fPath=this.fName.PostedFile.FileName;//获得要导入的文本文件 string extName=fPath.Substring(https://www.360docs.net/doc/3713517743.html,stIndexOf(".")+1);//获得文件的扩展名 SqlConnection con=new SqlConnection("server=.;database=pubs;uid=sa;pwd=;");// 数据库连 接对象 con.Open(); //注意下面的连接字符串,是它起到了导入的作用 SqlCommand excelCmd=new SqlCommand("insert OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE="+fPath+"',Sheet1$)",con); into txtInsert select * from
SqlTransaction myTran=con.BeginTransaction();// 开 始 一 个 事 务 操 作 excelCmd.Transaction=myTran; try { excelCmd.ExecuteNonQuery(); https://www.360docs.net/doc/3713517743.html,mit();//提交事务 Response.Write(""); } catch (SqlException err) { myTran.Rollback(); //出错回滚事务操作 //以下三行是去掉数据库出错信息中的非法字符单引号、回车和换行符,否则在使用时 javascript 代码将有语法错误 //因为 js 的编码和 c#的编码不同 string errString=err.Message.Replace("'"," "); errString=errString.Replace(Convert.ToChar(13).ToString(),"");errString=errString.Replace(Convert.T oChar(10).ToString(),"");//显示出错信息框 Response.Write(""); } con.Close(); } 3 / 13

这里“显示出错信息框”开始我没有田间那三行代码,结果搞了半天,最后还是在 html 文 件中发现 javascript 代码部分出现了分行,老是提示“未结 束的字符串常量”,所以导致不能打 开信息框,郁闷死我了,花了好多时间。 4.将 excel 中部分列导入数据库的方法 上面讲了关于将整个 excel 文件导入数据库的方法,那么在实际项目中遇到将 excel 文件 中若干列导入数据库怎么办的呢,原理差不多,我就将代码直接给出了: 代码 stringfPath=this.fName.PostedFile.FileName;//获得要导入的文本文 件 stringextName=fPath.Substring(https://www.360docs.net/doc/3713517743.html,stIndexOf(".")+1);//获得文件的扩展名 SqlConnection con=new SqlConnection("server=.;database=pubs;uid=sa;pwd=;");// 数据库连 接对象 con.Open(); string mystring="Provider = Microsoft.Jet.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.Tables[0].Rows.Count > 0) { string strSql = ""; string CnnString="Provider=SQLOLEDB;database=pubs;server=.;uid=sa;pwd="; OleDbConnection conn =new OleDbConnection(CnnString); conn.Open (); OleDbCommand myCmd =null;for(int i=0; i { strSql="insert into txtInsert(id,name) values ("; strSql += myDs.Tables[0].Rows[i].ItemArray[0].ToString() + ", '"; strSql += myDs.Tables[0].Rows[i].ItemArray[1].ToString() + "')"; myCmd=new OleDbCommand(strSql,conn); try { myCmd.ExecuteNonQuery (); Response.Write(""); } catch (OleDbException err) { 4 / 13

Response.Write("导入数据库时出错:" +err.ToString()); break; } } conn.Close(); 篇二:excel 导入导出通用方法 1. package https://www.360docs.net/doc/3713517743.html,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 https://www.360docs.net/doc/3713517743.html,ng.reflect.Field; 7. 8. import jxl.Workbook; 9. import jxl.format.Alignment; 10. import jxl.format.Border; 11. import jxl.format.BorderLineStyle; 12. import jxl.format.VerticalAlignment; 13. import https://www.360docs.net/doc/3713517743.html,bel; 14. import jxl.write.WritableCellFormat; 15. import jxl.write.WritableFont; 16. import jxl.write.WritableSheet; 17. import jxl.write.WritableWorkbook; 18. /*** 19.* @author lsf 20.*/ 21. public class ExportExcel { 22./************************************************************************** * 23.* @param fileName EXCEL 文件名称 24.* @param listTitle EXCEL 文件第一行列标题集合 25.* @param listContent EXCEL 文件正文数据集合 26.* @return 27.*/ 28.publicfinal static String exportExcel(String fileName,String[] Title, Lis t listContent) { 29.String result="系统提示:Excel 文件导出成功!"; 5 / 13

30.// 以下开始输出到 EXCEL 31.try { 32. //定义输出流,以便打开保存对话框______________________begin 33. HttpServletResponse response=ServletActionContext.getResponse(); 34. OutputStream os = response.getOutputStream();// 取得输出流 35. response.reset();// 清空输出流 36. response.setHeader("Content-disposition", "attachment; filename="+ new St ring(fileName.getBytes("GB2312"),"ISO8859-1")); 37. // 设定输出文件头 38. response.setContentType("application/msexcel");// 定义输出类型 39. //定义输出流,以便打开保存对话框_______________________end 40. 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(); 50. sheetset.setProtected(false); 51. 52. 53. /** ************设置单元格字体************** */ 54. WritableFont NormalFont = new WritableFont(WritableFont.ARIAL, 10); 55. WritableFont BoldFont = new WritableFont(WritableFont.ARIAL, 10,WritableF ont.BOLD); 56. 57. /** ************以下设置三种单元格样式,灵活备用************ */ 58. // 用于标题居中 59. WritableCellFormat wcf_center = new WritableCellFormat(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. 6 / 13

65. // 用于正文居左 66. WritableCellFormat wcf_left = 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. //sheet.mergeCells(0, 0, colWidth, 0); 75. //sheet.addCell(new Label(0, 0, "XX 报表", wcf_center)); 76. /** ***************以下是 EXCEL 第一行列标题********************* */ 77. for (int i = 0; i 78.sheet.addCell(new Label(i, 0,Title[i],wcf_center)); 79. } 80. /** ***************以下是 EXCEL 正文数据********************* */ 81. Field[] fields=null; 82. int i=1; 83. for(Object obj:listContent){ 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. /** *********关闭文件************* */ 100. workbook.close(); 101. 102.} catch (Exception e) { 103. result="系统提示:Excel 文件导出失败,原因:"+ e.toString(); 7 / 13

104. System.out.println(result); 105. e.printStackTrace(); 106.} 107.return result; 108.} 109. } 3.通用导出: [java] view plaincopy 1. package https://www.360docs.net/doc/3713517743.html,mon.excel.parser; 2. 3. 4. import java.io.FileOutputStream; 5. import java.io.OutputStream; 6. import https://www.360docs.net/doc/3713517743.html,ng.reflect.Field; 7. import https://www.360docs.net/doc/3713517743.html,ng.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 https://www.360docs.net/doc/3713517743.html,ermodel.HSSFRichTextString; 18. import https://www.360docs.net/doc/3713517743.html,ermodel.HSSFWorkbook; 19. import https://www.360docs.net/doc/3713517743.html,ermodel.Cell; 20. import https://www.360docs.net/doc/3713517743.html,ermodel.RichTextString; 21. import https://www.360docs.net/doc/3713517743.html,ermodel.Row; 22. import https://www.360docs.net/doc/3713517743.html,ermodel.Sheet; 23. import https://www.360docs.net/doc/3713517743.html,ermodel.Workbook; 24. 25. 26. import com.huateng.test.pojo.Student; 27. 28. 29. public class ExcelExport2 { 30. 8 / 13

31. 32. public static void exportExcel(String title, Class pojoClass,Collection data Set, 33. 34. //使用 userModel 模式实现的,当 excel 文档出现 10 万级别的大数据文件可能导致 OOM 内存溢 出 35. 36. //使用 eventModel 实现,可以一边读一边处理,效率较高,但是实现复杂,暂时未 实现 37. 38. private static void exportExcelInUserModel(String title, Class pojoClass,Col lection 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) 46. 47. throw new Exception("传入参数不能为空!"); 48. 49. // 声明一个工作薄 50. new HSSFWorkbook(); 51. // 生成一个表格 52. 53. 54. 55. // 标题 56. new ArrayList(); 57. new ArrayList(); 58. // 拿到所有列名,以及导出的字段的 get 方法 59. new ArrayList(); 60. new HashMap(); 61. // 得到所有字段 62. 63. // 遍历整个 filed 9 / 13

64. for (int i = 0; i 66. class);
65.
67. // 如果设置了 annottion 68. if (excel != null) { 69. // 添加到标题 70. 71. //添加标题的列宽 72. 73. // 添加到需要导出的字段的方法 74. 75. //System.out.println(i+"列宽 "+excel.exportName()+" "+excel.exportFieldWidth()); 76. new StringBuffer("get"); 77. 0, 1) 78. 79. 1)); 80. 81. 82. 83. new Class[] {}); 84. 85. 86. 87. if(excel.exportConvertSign()==1) 88. 89. new StringBuffer("get"); 90. 0, 1) 91. 92. 1)); 93. "Convert"); 94. //System.out.println("convert: "+getConvertMethodName.toString()); 95. 96. new Class[] {}); 97. 篇三:如何在 Word 中嵌入已有的 Excel 工作表 如何在 Word 中嵌入已有的 Excel 工作表 Word 和 Excel 是我们在日常工作中经常使用的软件,在实际工作中,我们如果能熟练地 将二者配合起来,发挥它们各自的长处,会取得事半功倍的效果。 10 / 13

例如:我们要写一篇关于学期成绩的分析报告,我们可在 Word 中编辑文本内容,然后 在合适位置嵌入已经制作好的 Excel 成绩表格。 在 Word 中嵌入已有的 Excel 工作表的方法很多, 各具特点,可根据具体情况而选用。 方法一:利用“复制、粘贴”命令来嵌入 此种方法插入的表格内容为 Word 文档中的普通表格,且与 Excel 脱离了关系。 1. 打开 Excel 工作表,选定要嵌入的对象。 2. 单击常用工具栏中的〔复制〕按钮,将选中的对象复制到“剪贴板”中。 3. 回到正在编辑的 Word 文档中,定位插入点,然后单击“编辑”菜单中的“粘贴”命令。 方法二:利用“选择性粘贴”命令来嵌入利用此方法插入表格后,双击插入的表格可进入 Excel,并可以在其中进行编辑,但原 Excel 工作表中的数据如有改变,对 Word 中嵌入的表格 不会产生影响。 1. 打开 Excel 工作表,选定要嵌入的对象。 2. 单击常用工具栏中的〔复制〕按钮,将选中的对象复制到“剪贴板”中。 3. 回到正在编辑的 Word 文档中,定位插入点,再单击“编辑”菜单中的“选择性粘贴”命 令。4. 在弹出的“选择性粘贴”对话框中,选择“粘贴”单选框,表示将对象嵌入 Word 文档中。 在“作为”列表中选“MicrosoftExcel 工作表对象”选项,表示粘贴的内容可以用 Excel 工作表来编 辑它,最后按〔确定〕按钮。 方法三:利用插入对象的方法来嵌入表格 此种方法表格一旦嵌入后,双击插入的内容可进入 Excel,并在其中编辑它。而且如果对 原 Excel 工作表中的数据进行修改,Word 中嵌入的表格也随之改变。 1. 打开正在编辑的 Word 文档,首先定位光标,然后单击“插入”菜单中的“对象”命令。 2. 弹出“对象”对话框,选择“由文件创建”选项卡,在“文件名”框中输入 Excel 工作表所在 位置,或按〔浏览〕按钮进行选择。选中“链接到文件”复选框,可使插入内容随原 Excel 表格 中的数据的改变而改变,最后按〔确定〕按钮。 3. 适当调整表格显示内容的位置。
11 / 13

12 / 13

13 / 13

相关主题
相关文档
最新文档