马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

Winform中Excel文件数据导入到datagridview教程

  [复制链接]
查看10845 | 回复7 | 2016-9-22 09:32:47 | 显示全部楼层 |阅读模式
本文转自博客园

首先我要读取这个excel文件然后生成Datable

Winform中Excel文件数据导入到datagridview教程 www.ibcibc.com,C#教程,IBC编程社区

Winform中Excel文件数据导入到datagridview教程 www.ibcibc.com,C#教程,IBC编程社区


前台界面:

Winform中Excel文件数据导入到datagridview教程 www.ibcibc.com,C#教程,IBC编程社区

Winform中Excel文件数据导入到datagridview教程 www.ibcibc.com,C#教程,IBC编程社区



后台代码:


[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace 读Excel文件
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 选择文件按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                this.textBox1.Text = this.openFileDialog1.FileName;
            }
        }
        /// <summary>
        /// 点击导出excel按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            string File = this.openFileDialog1.FileName;
            DataTable dt = ExcelUp(File);
            dataGridView1.AutoGenerateColumns = false;
            dataGridView1.DataSource = dt;

        }
        /// <summary>
        /// 读取指定excel表中的内容返回datatable
        /// </summary>
        /// <param name="fileName">文件地址</param>
        /// <returns>表中内容</returns>
        public DataTable ExcelUp(string fileName)
        {
            string filePath = fileName;//读取excel文件路径;

            DataTable dt = GetDataTable("Sheet1", filePath);

            return dt;

        }

        /// <summary>
        /// 读取excel指定页中的内容
        /// </summary>
        /// <param name="strSheetName">页名</param>
        /// <param name="strExcelFileName">excel路径</param>
        /// <returns></returns>
        protected DataTable GetDataTable(string strSheetName, string strExcelFileName)
        {
            //源的定义
            string strConn = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source={0};" + "Extended Properties='Excel 8.0;HDR=NO;IMEX=1';", strExcelFileName);

            //Sql语句
            string strExcel = string.Format("select * from [{0}$]", strSheetName);

            //定义存放的数据表
            DataSet ds = new DataSet();

            //连接数据源
            OleDbConnection conn = new OleDbConnection(strConn);

            try
            {
                conn.Open();
                //适配到数据源
                OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
                adapter.Fill(ds, strSheetName);
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                conn.Close();
            }
            return ds.Tables[strSheetName];
        }


    }
}




实现的效果:(说明:在excel中读取的datable中列头都是F几,如F1,F2等,要自己转换)

Winform中Excel文件数据导入到datagridview教程 www.ibcibc.com,C#教程,IBC编程社区

Winform中Excel文件数据导入到datagridview教程 www.ibcibc.com,C#教程,IBC编程社区


C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
ibcadmin | 2016-9-22 09:33:07 | 显示全部楼层
111
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
即墨还雀 | 2016-9-22 09:36:14 | 显示全部楼层
每次都是抢完二楼再发出来
ibcadmin | 2016-9-22 09:38:30 | 显示全部楼层
即墨还雀 发表于 2016-9-22 09:36
每次都是抢完二楼再发出来

  下次留给你
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
meng | 2016-9-22 09:39:04 | 显示全部楼层
333
ibcadmin | 2016-9-22 09:42:16 | 显示全部楼层
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
即墨还雀 | 2016-9-23 10:16:20 | 显示全部楼层
jjs7os | 2016-11-4 13:06:12 | 显示全部楼层
支持一下吧
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则