读取Excel文件的数据

tianhw1980 2009-04-15 03:24:53
读取Excel文件的数据,想实现的功能是
点击一个按钮控件就可以读取某一个EXCEL文件的某一行某一列的数据到一个指定的TextBox

怎么实现呢?

本人很菜,请大家帮忙!
...全文
120 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tang_fu 2009-04-19
  • 打赏
  • 举报
回复
引用命名空间:using System.Data.OleDb;
filepath:指Excel文件完整路径
SheetName:指数据所在的工作表的名称,例如:sheet1,sheet2
在程序中调用方法:TextBox1.Text=ReportToGridView("E:\\xx.xls","Sheet1").Rows[0][0].ToString();
上述调用方法是获取Excel中的第一行第一列的数据。
public static DataSet ReportToGridView(string filepath, string SheetName)
{
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;IMEX=1'";
System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection(strCon);
string strCom = "SELECT * FROM [" + SheetName + "$]";
myConn.Open();
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, myConn);
//创建一个DataSet对象
DataSet myDataSet = new DataSet();
//得到自己的DataSet对象
myCommand.Fill(myDataSet);
//关闭此数据链接
myConn.Close();
gv.DataSource = myDataSet;
gv.DataBind();
return myDataSet;
//DBoperate dbo = new DBoperate();
}
NeptuneGrass 2009-04-19
  • 打赏
  • 举报
回复
major 2009-04-18
  • 打赏
  • 举报
回复
忘了说了,你用的Excel必须使用标准的工作表。
ysj52zqq 2009-04-17
  • 打赏
  • 举报
回复
网上很多代码
sky_dj 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sky_dj 的回复:]
还有我的开发工具是vs2008
[/Quote]
sorry,发错地方了
sky_dj 2009-04-17
  • 打赏
  • 举报
回复
还有我的开发工具是vs2008
sky_dj 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 tianhw1980 的回复:]
报错

“System.Data.DataSet”并不包含“Rows”的定义

是不是
TextBox1.Text=ReportToGridView("E:\\xx.xls","Sheet1").Rows[0][0].ToString();
的问题啊?
[/Quote]
TextBox1.Text=ReportToGridView("E:\\xx.xls","Sheet1").Tables[0].Rows[0][0].ToString();
tianhw1980 2009-04-17
  • 打赏
  • 举报
回复
报错

“System.Data.DataSet”并不包含“Rows”的定义

是不是
TextBox1.Text=ReportToGridView("E:\\xx.xls","Sheet1").Rows[0][0].ToString();
的问题啊?
tianhw1980 2009-04-17
  • 打赏
  • 举报
回复
现在我把代码改成如下:

public static DataSet ReportToGridView(string filepath, string SheetName)
{
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;IMEX=1'";
System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection(strCon);
string strCom = "SELECT * FROM [" + SheetName + "$]";
myConn.Open();
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, myConn);
//创建一个DataSet对象
DataSet myDataSet = new DataSet();
//得到自己的DataSet对象
myCommand.Fill(myDataSet);
//关闭此数据链接
myConn.Close();
return myDataSet;
}


protected void Button3_Click(object sender, EventArgs e)
{

TextBox1.Text = ReportToGridView("E:\1.xls", "Sheet1").Tables[0].Rows[0].ToString();


}


但是在myConn.Open();处报错: {"外部表不是预期的格式。"}

怎么回事?

不明白啊!
major 2009-04-16
  • 打赏
  • 举报
回复
3楼的程序有问题,我改了下。
引用命名空间:using System.Data.OleDb;
还需引用命名空间:using System.Data;
using System.Data.SqlCilent;
filepath:指Excel文件完整路径
SheetName:指数据所在的工作表的名称,例如:sheet1,sheet2
在程序中调用方法:TextBox1.Text=ReportToGridView("E:\\xx.xls","Sheet1").Rows[0][0].ToString();
如果需要获得第i行第j列的数据的话:TextBox1.Text=ReportToGridView("E:\\xx.xls","Sheet1").Rows[i][j].ToString();
注意Excel中的行号和列号是从0开始编号的。
上述调用方法是获取Excel中的第一行第一列的数据。
public static DataSet ReportToGridView(string filepath, string SheetName)
{
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;IMEX=1'";
System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection(strCon);
string strCom = "SELECT * FROM [" + SheetName + "$]";
myConn.Open();
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, myConn);
//创建一个DataSet对象
DataSet myDataSet = new DataSet();
//得到自己的DataSet对象
myCommand.Fill(myDataSet);
//关闭此数据链接
myConn.Close();
return myDataSet;
}
Casper2009 2009-04-16
  • 打赏
  • 举报
回复
引用命名空间:using System.Data.OleDb;
filepath:指Excel文件完整路径
SheetName:指数据所在的工作表的名称,例如:sheet1,sheet2
在程序中调用方法:TextBox1.Text=ReportToGridView("E:\\xx.xls","Sheet1").Rows[0][0].ToString();
上述调用方法是获取Excel中的第一行第一列的数据。
public static DataSet ReportToGridView(string filepath, string SheetName)
{
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;IMEX=1'";
System.Data.OleDb.OleDbConnection myConn = new System.Data.OleDb.OleDbConnection(strCon);
string strCom = "SELECT * FROM [" + SheetName + "$]";
myConn.Open();
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, myConn);
//创建一个DataSet对象
DataSet myDataSet = new DataSet();
//得到自己的DataSet对象
myCommand.Fill(myDataSet);
//关闭此数据链接
myConn.Close();
gv.DataSource = myDataSet;
gv.DataBind();
return myDataSet;
//DBoperate dbo = new DBoperate();
}
skysoft_j 2009-04-15
  • 打赏
  • 举报
回复
tianhw1980 2009-04-15
  • 打赏
  • 举报
回复
忘记说了
实在WEB中

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧