C#实现的Excel文件操作类实例
程序员文章站
2023-11-26 23:24:04
本文实例讲述了c#实现的excel文件操作类。分享给大家供大家参考,具体如下:
using system;
using system.data;
using...
本文实例讲述了c#实现的excel文件操作类。分享给大家供大家参考,具体如下:
using system; using system.data; using system.data.oledb; using system.text; using system.io; namespace hxh.api { /// <summary> /// excelopration 的摘要说明。 /// </summary> public class excelopration { oledbconnection conn; string connstring ; string filename; public excelopration() { // // todo: 在此处添加构造函数逻辑 // } public excelopration(string _filename) { // // todo: 在此处添加构造函数逻辑 // filename = _filename; } /// <summary> /// 打开连接 /// </summary> private void open() { if(conn==null) { //在此处设置访问的数据库文件 connstring = "provider=microsoft.jet.oledb.4.0;data source=" + filename +";extended properties=excel 8.0;"; conn=new oledbconnection(connstring); conn.open(); } else if(conn.state==system.data.connectionstate.closed) conn.open(); } /// <summary> /// 关闭连接 /// </summary> public void close() { if (conn != null) conn.close(); } /// <summary> /// 导入数据到excel /// </summary> /// <param name="outtable"></param> public void importdata(datatable outtable) { createexcel(outtable); insertdata(outtable); } /// <summary> /// 创建excel文件和表头 /// </summary> private void createexcel(datatable outtable) { stringbuilder sb = new stringbuilder(); if(file.exists(filename)) { file.delete(filename); } sb.append("create table sheet1("); foreach(datacolumn col in outtable.columns) { sb.append(col.columnname+" varchar,"); } sb.remove(sb.length-1,1); sb.append(")"); open(); oledbcommand olecmd = new oledbcommand(); olecmd.connection = conn; olecmd.commandtext = sb.tostring(); olecmd.executenonquery(); close(); } /// <summary> /// 插入数据 /// </summary> private void insertdata(datatable outtable) { oledbcommand olecmd = new oledbcommand(); oledbparameter[] parm=new oledbparameter[outtable.columns.count]; stringbuilder sb = new stringbuilder(); sb.append("insert into sheet1 values("); for(int i=0;i<outtable.columns.count;i++) { parm=new oledbparameter("@p"+outtable.columns.columnname,oledbtype.varchar); sb.append("@p"+outtable.columns.columnname+","); olecmd.parameters.add(parm); } sb.remove(sb.length-1,1); sb.append(")"); open(); olecmd.connection = conn; olecmd.commandtext = sb.tostring(); foreach(datarow row in outtable.rows) { for(int i=0;i<outtable.columns.count;i++) { parm.value = row[outtable.columns.columnname].tostring().trim(); } olecmd.executenonquery(); } close(); } /// <summary> /// 从excel输出数据到数据集 /// </summary> /// <returns></returns> public dataset outportdata() { dataset ds = new dataset(); open(); oledbdataadapter myadapter = new oledbdataadapter("select * from [sheet1$]", conn); myadapter.fill(ds,"input"); close(); return ds; } } }
更多关于c#相关内容感兴趣的读者可查看本站专题:《c#操作excel技巧总结》、《c#程序设计之线程使用技巧总结》、《c#常见控件用法教程》、《winform控件用法总结》、《c#数据结构与算法教程》、《c#数组操作技巧总结》及《c#面向对象程序设计入门教程》
希望本文所述对大家c#程序设计有所帮助。