将excel文件导入到winform的控件中

本文介绍如何在Winform应用程序中将Excel文件导入到dataGridView控件。首先,需要引用Microsoft.Office.Core并使用System.Data.OleDb命名空间。通过创建OleDbConnection连接字符串,可以打开Excel文件并读取数据。数据读取后,将其填充到DataSet对象,然后设置dataGridView的DataSource为DataSet的表格。在按钮点击事件中,可以选择Excel文件并执行导入操作。注意连接字符串中的HDR参数设置以及避免直接使用'Sheet1'作为表名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将excel文件导入到winform的控件中

【转】http://hi.baidu.com/fzcid/blog/item/e8abfe24af56a80a4d088d12.html

 

 

要添加引用COM中的Microsoft.office.core

然后添加命名空间System.Data.OleDb;

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.ofd_in.DefaultExt = "xls";
this.ofd_in.Filter = "Excel文件(*.xls)|*.xls";
}
/// <summary>
/// 从选择的excel导入
/// </summary>
/// <returns></returns>
public void ImportExcel(string ExcelName,string Tablename)
{
string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ExcelName+";Extended Properties='Excel 8.0;HDR=No;IMEX=1';";//连接excel文件的字符串
if (ExcelName == null)
{
return;
}
OleDbConnection odcon = new OleDbConnection(strcon);//建立连接
odcon.Open();//打开连接
////循环输出显示到控件中
//OleDbCommand odc = new OleDbCommand("select * from " + Tablename, odcon);
//OleDbDataReader dr = odc.ExecuteReader();
//while (dr.Read())
//{
// ListViewItem item=new ListViewItem (dr[0].ToString());
// item.SubItems.Add(dr[1].ToString());
// listView1.Items.Add(item);
//}
//把数据集dataset放到控件中显示
OleDbDataAdapter odda = new OleDbDataAdapter("select * from " + Tablename, odcon);
DataSet ds = new DataSet();
try
{
odda.Fill(ds);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
if (ds != null)
{

this.dataGridView1.DataSource = ds.Tables[0];

}
else
{
MessageBox.Show("没有数据");
}
}

private void button1_Click(object sender, EventArgs e)
{
if (ofd_in.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.textBox1.Text = ofd_in.FileName.ToString();
ImportExcel(ofd_in.FileName, "[Sheet1$]");//传递excel文件名,和表名
}
}
}

提示:1 HDR=No的值等于No表示第一行不是标题,Yes表示第一行是标题

2 表名不能写成"Sheet1",这样会出错

3 如果出现提示:找不到可安装的ISMA这是因为连接字符串写的有问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值