c# 处理EXCEL 操作包括查询以及增改

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using System.Data.OleDb;

namespace 操作EXCEL
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnQuery_Click(object sender, EventArgs e)
        {
            System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/a.xls;Extended Properties=Excel 8.0;");
          DataSet   ds = new DataSet();
            OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", Conn);//删除语句没搞定,有时间了继续测试。。。
           
            try
            {
                da.Fill(ds);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                Conn.Close();
                return;
            }
            dataGridView1.DataSource = ds.Tables[0];
            Conn.Close();

          
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/a.xls;Extended Properties=Excel 8.0;");
            DataSet ds = new DataSet();
            string strSql = "update [sheet1$] set b=111";//将写入所有有数据的行,b是列标题名(测试通过)
            strSql = "update [sheet1$] set b=123 where a=111";//只写入影响一行数据。(测试通过)
            Conn.Open();
            OleDbCommand cmd = new OleDbCommand(strSql, Conn);
            cmd.ExecuteNonQuery();
            Conn.Close();
        }
               private void btnInsert_Click(object sender, EventArgs e)
        {
            System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/a.xls;Extended Properties=Excel 8.0;");
            DataSet ds = new DataSet();
            string strSql = "insert into [sheet1$](a3,b3) values('123','456')";//写入新的一行数据,a3,b3是第一行单元格的值(测试通过)
            strSql = "insert into [sheet1$]  values('123','456','765','890')";//本句中值的个数必须和EXCEL表格中的列数相同,否则报错。(测试通过,本例中EXCEL共有4列)
            strSql = "insert into [sheet1$](b3,c3)  values('123','456')";//只插第二三列(测试通过)
           // strSql = "insert into [sheet1$B3:C8] VALUES(1,2)"; //测试时可能会报错,超出界限
            Conn.Open();
            OleDbCommand cmd = new OleDbCommand(strSql, Conn);
            cmd.ExecuteNonQuery();
            Conn.Close();
        }

//删除的没搞定,有时间再继续弄      

 private void btnDel_Click(object sender, EventArgs e)
        {
            System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/a.xls;Extended Properties=Excel 8.0;");
            DataSet ds = new DataSet();
            string strSql = "delete * from [sheet1$]";//写入新的一行数据,a,b是列名(测试通过)
          //DELETE Sheet1.编号, Sheet1.姓名 FROM Sheet1 WHERE Sheet1.编号 in (select sheet2.编号 from sheet2)

            Conn.Open();
            OleDbCommand cmd = new OleDbCommand(strSql, Conn);
            cmd.ExecuteNonQuery();
            Conn.Close();
        }
    }
}


文章出处:DIY部落(http://www.diybl.com/course/4_webprogram/asp.net/netjs/2008219/100165.html)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值