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表格数据的方法了。希望对大家有帮助。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页