DataGridView导入Excel的数据

复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using ExcelDataReader;

namespace wfa
{
    public partial class EXcelToDgv : Form
    {
        public EXcelToDgv()
        {
            InitializeComponent();
        }

        DataTableCollection tableCollection;

        private void btn_FileChoose_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter="Excel(*.xlsx)|*.xlsx|Excel(*.xls)|*.xls";

            if (openFileDialog.ShowDialog() == DialogResult.OK) 
            {
                txt_FilePath.Text = openFileDialog.FileName;

                FileStream stream = File.Open(openFileDialog.FileName, FileMode.Open, FileAccess.Read);

                var reader = ExcelReaderFactory.CreateReader(stream);

                var result = reader.AsDataSet(new ExcelDataSetConfiguration()
                {

                    ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration()
                    {
                        UseHeaderRow = true
                    }


                }) ;

                //得到ExcelFile文件的表Sheet
                tableCollection = result.Tables;
                cbo_SheetChoose.Items.Clear();
                foreach (DataTable item in tableCollection)
                {
                    cbo_SheetChoose.Items.Add(item.TableName);
                }

            }
        }

        private void dgv_CellContentClick() {
            dgv_ExcelData.RowsDefaultCellStyle.BackColor = Color.White;
            var dt = tableCollection[cbo_SheetChoose.SelectedItem.ToString()];

            BindDataGridView(dt, dgv_ExcelData);

            dgv_ExcelData.Rows[0].Cells[0].Selected = false;
            dgv_ExcelData.Rows[0].Selected = false;
        }


        public static void BindDataGridView(DataTable dt, DataGridView dgv) {

            dgv.DataSource = dt;
        }

        private void cbo_SheetChoose_SelectedIndexChanged(object sender, EventArgs e)
        {
            dgv_CellContentClick();
        }
    }
}
复制代码

代码参考:https://blog.csdn.net/qq_44199450/article/details/122673374

posted @   iCare℃  阅读(246)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
点击右上角即可分享
微信分享提示