using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MainForm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// selectExcel();
}
private void Form1_Load(object sender, EventArgs e)
{
}
string excelFilePath = "";//定义一个全局变量
private void button_excel_Click(object sender, EventArgs e)
{
OpenFileDialog openExcel = new OpenFileDialog();
openExcel.InitialDirectory = @"";
//openExcel.Filter = "Excel文件|*.xls|Excel文件|*.xlsx"; //这里是个问题需要处理
openExcel.Filter = "Excel文件|*.xlsx|Excel文件|*.xls";
openExcel.Title = "打开Excel文件";
if (openExcel.ShowDialog() == DialogResult.OK)
{
excelFilePath = openExcel.FileName;//获得文件的全路径
}
else
{
MessageBox.Show("Excel 文件读取失败 ");
}
}
//需要获取excel的表头,匹配一下,适用于所有的excel
public DataTable readExcel(string excelFilePath)
{
//通过select语句读取excel表的内容,存放到dataset中,方便操作
try
{
//创建连接,引用协议
string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFilePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
// string strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFilePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";//HDR=YES,第一行为表头,否则为FALSE
OleDbConnection oleDbConnect = new OleDbConnection(strConnect);
//打开连接,并执行sql语句,需要最后关闭
oleDbConnect.Open();
//string sql = "SELECT * FROM [Sheet1$] WHERE 客户 = ' "+a+"' ";
// string sql = "SELECT * FROM [Sheet1$] WHERE 项目 = '" + comboBox1.Text +"' and 客户 LIKE '%' ";
string sql = "SELECT * FROM [Sheet1$] WHERE 客户 == ' " + comboBox1.Text + "' ";
// string sql = "SELECT * FROM [Sheet1$] WHERE 序号='254' "; //后面代表打开的文件是表格sheet1?
//在这里使用id='248'判断相等的元素
//执行sql命令
OleDbDataAdapter oleDaExcel = new OleDbDataAdapter(sql, oleDbConnect);
DataSet oleDsExcel = new DataSet();
oleDaExcel.Fill(oleDsExcel, "Sheet1");
oleDbConnect.Close();
return oleDsExcel.Tables["Sheet1"];
}
catch (Exception e)
{
MessageBox.Show("数据绑定Excel失败,失败原因:" + e.Message);
return null;
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
selectExcel();
}
public void selectExcel()
{
try
{
if (comboBox1.Text != "" | comboBox2.Text != "" | comboBox3.Text != "" | comboBox4.Text != "" | comboBox5.Text != "" | comboBox6.Text !="" | comboBox7.Text !=""|comboBox8.Text!="")
{
DataTable dt;
dt = readExcel(excelFilePath);
dataGridView1.DataSource = dt;
}
}
catch (System.Exception ex)
{
MessageBox.Show("数据筛选Excel失败,失败原因:" + ex.Message);
}
}
}
}
C# 小工具:读取excel表格,实现筛选某一列的功能,并显示处理
最新推荐文章于 2024-02-27 08:59:53 发布