C# 读取EXCEL 数据到DataGridView
2022/1/26 17:04:53
本文主要是介绍C# 读取EXCEL 数据到DataGridView,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、要安装或引用DLL;“Microsoft.Office.Interop.Excel.dll”,复制到bin/debug目录下;
2 、在项目解决方案上引用;
网上搜到的函数 ,我建 了个通用类Excel ;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class Excel { public static DataTable ReadFromExcel(string excelpath) { string sExt = System.IO.Path.GetExtension(excelpath); string sConn = null; if (sExt == ".xlsx") { sConn = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + excelpath + ";" + "Extended Properties='Excel 12.0;HDR=YES'"; } else if (sExt == ".xls") { sConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelpath + ";" + "Extended Properties=Excel 8.0"; } else { throw new Exception("文件格式有误"); } OleDbConnection oledbConn = new OleDbConnection(sConn); oledbConn.Open(); /// //返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等 DataTable dtSheetName = oledbConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); //包含excel中表名的字符串数组 string[] strTableNames = new string[dtSheetName.Rows.Count]; for (int k = 0; k < dtSheetName.Rows.Count; k++) { strTableNames[k] = dtSheetName.Rows[k]["TABLE_NAME"].ToString(); } OleDbDataAdapter command = new OleDbDataAdapter("SELECT * FROM [" + strTableNames[0] + "]", oledbConn); DataSet ds = new DataSet(); command.Fill(ds); oledbConn.Close(); return ds.Tables[0]; } }
调用方法,引用 Excel.ReadFromExcel(excelpath);:
OpenFileDialog ofd = new OpenFileDialog(); if (ofd.ShowDialog() == DialogResult.OK) { string excelpath = ofd.FileName; dataGridView1.DataSource = Excel.ReadFromExcel(excelpath); }
参考1:解决 |Sheet1 名称出错问题
(53条消息) 'Sheet1$' 不是一个有效名称的解决方法_心如止水-CSDN博客_不是一个有效名称
参考2:
(53条消息) C#读取Excel到DataGridView(两种方式)_CSDNwhyu的博客-CSDN博客_c# datagridview excel
我试了参考2的两种方法 ,第一种方法速度太慢
这篇关于C# 读取EXCEL 数据到DataGridView的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具