C#读取excel数据并呈现

该代码示例展示了如何在C#窗体应用中通过OpenFileDialog选择Excel文件,然后使用OleDb连接读取数据到DataTable,并将数据绑定到dataGridView显示。支持.xls和.xlsx格式,通过调整Jet.OLEDB连接字符串来适应不同版本的Excel。
摘要由CSDN通过智能技术生成

C#读取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 ApExcel = Microsoft.Office.Interop.Excel;
using System.IO;
using System.Data.OleDb;

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

        private void 导入ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string strConn = "";
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "Excel文件(.xls)|*.xls|Excel文件(.xlsx)|*.xlsx|CSV UTF-8(逗号分隔)(.csv)|*.csv|CSV(逗号分隔)(.csv)|*.csv";
            if(ofd.ShowDialog()==DialogResult.OK)
            {
                string path = ofd.FileName;
                string ext = Path.GetExtension(path);
                if(ext==".xls")
                {
                    strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
                    //IMEX = 0 表示Excel只能用作写入,1 只能作读取,2 读写都可;
                    //HDR = YES 第一行是标题, NO 第一行是数据。
                }
                else
                {
                    strConn = @"Provider=Microsoft.Jet.OLEDB.12.0;Data Source=" + path + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";
                }
                DataTable dtData = new DataTable();
                using (OleDbConnection conn = new OleDbConnection(strConn))
                {
                    conn.Open();
                    DataTable dtNames = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
                    string shName = dtNames.Rows[0][2].ToString();
                    string sql = "select * from ["+shName+"]";
                    OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
                    da.Fill(dtData);
                }
                dataGridView1.DataSource = dtData;
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值