在上一篇中关于Excel表格的打开,已经详细的讲解了Excel命名空间的引用,这里我就不重复了!
网址链接:
http://blog.csdn.net/kkfdsa132/archive/2010/03/14/5379529.aspx
下面,我们进入主题。
Excel表格的修改方式有很多。这里我介绍下,我知道的两种方法。
1.通过sql语句,修改。这也是我比较喜欢的方法。因为比较方便,和效率高。对于有数据库基础的,上手也快。
2.通过Excel提供的对象类,进行访问。这种方式,效率比较低,反应慢。因为这个操作过程,是要打开Excel文件的,Excel的开启占去了许多时间。
方法一:通过sql语句进行修改,方法类似于数据库操作。
下面给出源代码!代码中注释。
/// <summary>
/// 通过sql语句,修改并保存Excel
/// </summary>
/// <param name="strsql"></param>
/// <param name="filepath"></param>
private void DoSql(string strsql, string filepath)//这里的strsql指要执行的sql语句,filepath指Excel的路径,例如"E://1.xls"
{
try
{
string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=no;IMEX=0'";//连接Excel OLEDB协议
OleDbConnection oledCon = new OleDbConnection(ConnectionString);//创建连接对象
oledCon.Open();//开启连接
OleDbCommand oledCom = new OleDbCommand(strsql, oledCon);//
oledCom.ExecuteNonQuery();//执行sql语句
oledCon.Close();//关闭连接
}
catch (Exception err)
{
MessageBox.Show("Excel操作失败!失败原因:" + err.Message, "提示信息",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
下面再给给出一段代码,展示下如何调用上面语句。
首先,拉一个Button控件,和两个textbox
private void button1_Click(object sender, EventArgs e)
{
string num = int.Parse(textBox1.text);
string xuehao = textBox2.text;
string strsql = "Update [Sheet1$] set 旷课次数='"+num.ToString()+"' where 学号='"+xuehao+"'";
//修改数据,其中旷课次数,姓名是列名
DoSql(strsql, "E://1.xls");
}
上面举得例子是更新语句,同理,也可以通过insert语句进行插入,delete语句进行删除。这里简单举例下:
string strsql = "insert into [Sheet1$](旷课次数,姓名) values(12,'张三')";//写入新的数据
string strSql = "delete * from [Sheet1$] where 学号='张三'"; //删除一行
我也是一个初学者,很高兴和大家分享经验。
在下一篇文章,将继续介绍Excel的基本操作-----Excel表格处理方法二。
希望,能对大家有用。