新手小白用C# winform 读取Excel表的实现
作者:qiongyugaohan 发布时间:2022-12-27 15:45:12
标签:C#,winform,读取,Excel
一、界面部分:
首先,打开visual studio新建项目;
然后使用“工具箱”添加控件:分别添加button,datagridview,textbox三种窗体;
所得到的界面图如图所示:(多加了几个文本框)
二、代码部分:
1、添加命名空间:
using System.Data.OleDb; //命名空间
2、添加类:
//根据excle的路径把第一个sheel中的内容放入datatable
public static DataTable ReadExcelToTable(string path)//excel存放的路径
{
try
{
//连接字符串
string connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; // Office 07及以上版本 不能出现多余的空格 而且分号注意
//string connstring = Provider=Microsoft.JET.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1';"; //Office 07以下版本
using (OleDbConnection conn = new OleDbConnection(connstring))
{
conn.Open();
DataTable sheetsName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" }); //得到所有sheet的名字
string firstSheetName = sheetsName.Rows[0][2].ToString(); //得到第一个sheet的名字
string sql = string.Format("SELECT * FROM [{0}]", firstSheetName); //查询字符串 //string sql = string.Format("SELECT * FROM [{0}] WHERE [日期] is not null", firstSheetName); //查询字符串
OleDbDataAdapter ada = new OleDbDataAdapter(sql, connstring);
DataSet set = new DataSet();
ada.Fill(set);
return set.Tables[0];
}
}
catch (Exception)
{
return null;
}
}
3、在button中添加调用代码:
private void button1_Click(object sender, EventArgs e)
{
string folder_path = this.textBox1.Text.Trim();
dataGridView1.DataSource = null; //每次打开清空内容
DataTable dt = ReadExcelToTable(folder_path);
dataGridView1.DataSource = dt;
}
完毕!
点击运行,然后输入Excel文件的路径,点击button按钮。(这里的路径:路径+Excel文件名)
来源:https://blog.csdn.net/qiongyugaohan/article/details/80290201


猜你喜欢
- using System.IO;using System.IO.Compression;using System.Web;using Sys
- 一、概述之前公司app里面有个功能是一个可以双向滑动的范围选择器,我在网上百度过一些实现方法,感觉各有利弊吧,但是都不太适合我们的需求。所以
- MVC中,一般的情况下,使用IDE工具帮我们生成的代码,在路由注册的时候:public static void RegisterRoutes
- 本文实例为大家分享了java验证码生成的具体代码,供大家参考,具体内容如下简单验证码java实现--servlet类生成 验证码img,并写
- 内存对齐的基本原则:结构(struct/class)的内置类型数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的起始位置
- 前言这个题目可能取得不大好,想了很久没想出更合适的了。在android开发webview的时候,有的时候后台不一定给的就是一个url,而是把
- 这篇文章主要介绍了Java原生序列化和反序列化代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 本文实例讲述了Android获取设备CPU核数、时钟频率以及内存大小的方法。分享给大家供大家参考,具体如下:因项目需要,分析了一下 Face
- 1. Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在
- 啦啦毕业了,毕业前要写毕业设计,需要写一个简单的蓝牙APP进行交互,通过参考网上资料,问题顺利搞定,下面小编把具体实现思路分享给大家,供大家
- 对于Android中的手势识别可以从以下三个Listener入手——OnTouchListener、OnGestureListener、On
- Java doGet, doPost方法和文件上传index.html<!DOCTYPE html><html lang=
- Lambda表达式类似匿名函数,简单地说,它是没有声明的方法,也即没有访问修饰符、返回值声明和方法名。Lambda允许把函数作为一个方法的参
- package com.cq2022.zago.base.util;import java.io.FileReader;import jav
- 1、什么是hashCodehashCode就是对象的散列码,是根据对象的某些信息推导出的一个整数值,默认情况下表示是对象的存储地址。通过散列
- 今天分享的是用系统自带的相机实现一键拍照功能。public class MainActivity extends AppCompatActi
- 本文实例讲述了C#中线程同步对象的方法。分享给大家供大家参考。具体分析如下:在编写多线程程序时无可避免会遇到线程的同步问题。什么是线程的同步
- Spring使用AOP完成统一结果封装起因:自己写项目的时候忍受不了每个方法都要写一个retrun Result.success();和 r
- 面试的时候被问到,如何遍历System.drawing.Color下面的所有颜色以及名称以查看,当时答得不好,现将方案记录如下:View C
- 一、前言1、简单的登录验证可以通过Session或者Cookie实现。2、每次登录的时候都要进数据库校验下账户名和密码,只是加了cookie