C# 使用窗体读取Excel表格数据最简单粗暴的方法

因为之前有一些中文字符,经过一些修改,现在不用之前的那种DLL文件也可以直接使用了,更新如下:

我这里用的是VS(2017)。首先大家新建一个Windows窗体应用程序,然后找到工具箱,在其中 加入一个 Butten按钮和一个DataGridVive按钮,就像我这样既可只能读取xls文件。

如下代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DemosExcel
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }


        public DataSet getData()
        { 
            //打开文件
            OpenFileDialog file = new OpenFileDialog();
            file.Filter ="Excel(*.xls)| *.xls";
            file.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            file.Multiselect = false;

            if (file.ShowDialog() == DialogResult.Cancel)
                return null;
            //判断文件后缀

            var path = file.FileName;
            string filesuffix = System.IO.Path.GetExtension(path);
            if (string.IsNullOrEmpty(filesuffix))
                return null;

            using (DataSet ds = new DataSet())
            {
                //判断Excel文件时什么版本


                string connString = "";
                if (filesuffix == ".xls")
                    connString = "Provider = Microsoft.Jet.OLEDB.4.0;" + "Data Source =" + path + ";" + "; Extended Properties = \"Excel 8.0; HDR = YES; IMEX = 1 \"";
                else
                    connString = "Provider = Microsoft.ACE.OLEDB.12.0;" + "Data Source ="+ path + ";" + "; Extended Properties = \"Excel 12.0; HDR = YES; IMEX = 1 \"";

                //读取文件

                string sql_select ="SELECT* FROM[Sheet1$]";

                using(OleDbConnection conn = new OleDbConnection(connString))
                using (OleDbDataAdapter cmd = new OleDbDataAdapter(sql_select,conn))
                {
                    NewMethod1(conn);
                    cmd.Fill(ds);
                }
                if(ds == null || ds.Tables.Count <= 0)return null;
                return ds;

            }
             
        }
        private static void NewMethod1(OleDbConnection conn)
        {
            conn.Open();
        }


        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                dataGridView1.DataSource = null; //每次打开清空内容
                dataGridView1.DataSource = NewMethod().Tables[0];
            }
            catch(Exception ex)
            {

            }
        }

        private DataSet NewMethod()
        {
            return getData();
        }

    }
}

那么这就是简单的VS获取Excel表格数据的方法了。希望对大家有帮助。

  • 36
    点赞
  • 246
    收藏
    觉得还不错? 一键收藏
  • 103
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值