博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
excel 处理方法
阅读量:5080 次
发布时间:2019-06-12

本文共 2929 字,大约阅读时间需要 9 分钟。

//.方法一:采用OleDB读取EXCEL文件:         //打开excel 返回指定表中的所有数据        public DataSet ExcelToDS(string Path)        {            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";            System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);            conn.Open();            string strExcel = "";            System.Data.OleDb.OleDbDataAdapter myCommand = null;            DataSet ds = null;            strExcel = "select * from [sheet1$]";            myCommand = new System.Data.OleDb.OleDbDataAdapter(strExcel, strConn);            ds = new DataSet();            myCommand.Fill(ds, "table1");            return ds;        }        //对于EXCEL中的表即sheet([sheet1$])如果不是固定的可以使用下面的方法得到          public DataTable ExcelToDT(string Path)        {            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";            System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);            DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);            string tableName = schemaTable.Rows[0][2].ToString().Trim();            return schemaTable;        }        //写入excel        public void DSToExcel(string Path, DataSet oldds)        {                       //先得到汇总EXCEL的DataSet 主要目的是获得EXCEL在DataSet中的结构             string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + Path + ";Extended Properties=Excel 8.0";            System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection(strCon);            string strCom = "select * from [Sheet1$]";            myConn.Open();            System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, myConn);            System.Data.OleDb.OleDbCommandBuilder builder = new System.Data.OleDb.OleDbCommandBuilder(myCommand);            //QuotePrefix和QuoteSuffix主要是对builder生成InsertComment命令时使用。             builder.QuotePrefix = "[";     //获取insert语句中保留字符(起始位置)             builder.QuoteSuffix = "]"; //获取insert语句中保留字符(结束位置)             DataSet newds = new DataSet();            myCommand.Fill(newds, "Table1");            for (int i = 0; i < oldds.Tables[0].Rows.Count; i++)            {                //在这里不能使用ImportRow方法将一行导入到news中,因为ImportRow将保留原来DataRow的所有设置(DataRowState状态不变)。               // 在使用ImportRow后newds内有值,但不能更新到Excel中因为所有导入行的DataRowState != Added            DataRow nrow = newds.Tables["Table1"].NewRow();                for (int j = 0; j < newds.Tables[0].Columns.Count; j++)                {                    nrow[j] = oldds.Tables[0].Rows[i][j];                }                newds.Tables["Table1"].Rows.Add(nrow);            }            myCommand.Update(newds, "Table1");            myConn.Close();        }

 

转载于:https://www.cnblogs.com/enych/p/8330949.html

你可能感兴趣的文章
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
Abstract Factory Pattern
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
windows下编译FreeSwitch
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
c#自定义控件中的事件处理
查看>>
django Models 常用的字段和参数
查看>>
IOS--沙盒机制
查看>>
使用 JointCode.Shuttle 访问任意 AppDomain 的服务
查看>>
sqlite的坑
查看>>
digitalocean --- How To Install Apache Tomcat 8 on Ubuntu 16.04
查看>>
【题解】[P4178 Tree]
查看>>
Jquery ui widget开发
查看>>
关于indexOf的使用
查看>>
Mongo自动备份
查看>>
cer证书签名验证
查看>>