将excel文件导入到winform的控件中

要添加引用COM中的Microsoft.office.core

然后添加命名空间System.Data.OleDb;

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.ofd_in.DefaultExt = "xls";
            this.ofd_in.Filter = "Excel文件(*.xls)|*.xls";
        }
        /// <summary>
        /// 从选择的excel导入
        /// </summary>
        /// <returns></returns>
        public void ImportExcel(string ExcelName,string Tablename)
        {
            string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ExcelName+";Extended Properties='Excel 8.0;HDR=No;IMEX=1';";//连接excel文件的字符串
            if (ExcelName == null)
            {
                return;
            }
            OleDbConnection odcon = new OleDbConnection(strcon);//建立连接
            odcon.Open();//打开连接
            循环输出显示到控件中
            //OleDbCommand odc = new OleDbCommand("select * from " + Tablename, odcon);
            //OleDbDataReader dr = odc.ExecuteReader();
            //while (dr.Read())
            //{
            //    ListViewItem item=new ListViewItem (dr[0].ToString());
            //    item.SubItems.Add(dr[1].ToString());
            //    listView1.Items.Add(item);
            //}
            //把数据集dataset放到控件中显示
            OleDbDataAdapter odda = new OleDbDataAdapter("select * from " + Tablename, odcon);
            DataSet ds = new DataSet();
            try
            {
                odda.Fill(ds);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            if (ds != null)
            {
               
                    this.dataGridView1.DataSource = ds.Tables[0];
              
            }
            else
            {
                MessageBox.Show("没有数据");
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (ofd_in.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                this.textBox1.Text = ofd_in.FileName.ToString();
                ImportExcel(ofd_in.FileName, "[Sheet1$]");//传递excel文件名,和表名
            }
        }
    }

提示:1 HDR=No的值等于No表示第一行不是标题,Yes表示第一行是标题

      2 表名不能写成"Sheet1",这样会出错

      3 如果出现提示:找不到可安装的ISMA这是因为连接字符串写的有问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值