C#读取Excel列名的问题。速答速结分。

jason_mf 2007-01-25 11:15:08
Excel的第一行是
ID Name Age
的列名,在导入到DataSet后取不到这些列名只能用索引,
请问有什么办法可以把Excel里面的这一行读出来?

谢谢。
...全文
1011 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
silvanus 2007-01-25
  • 打赏
  • 举报
回复
上一段是从0开始,
下一段是从1开始
jason_mf 2007-01-25
  • 打赏
  • 举报
回复
问题解决。

顺便问一下,我在一个方法A中填充DataSet,把DataRowCollection drc传给方法B
在B中用
private void B(DataRowCollection drc)
{
froeach(DataRow dr in drc)
{
dr[0][colName] //为什么在这里报错“列在表中不存在”?
}
}

private void B(DataTable dt)
{
froeach(DataRow dr in dt.Rows)
{
dr[0][colName] //这样就没有问题
}
}

luqinghua 2007-01-25
  • 打赏
  • 举报
回复
从DataSet 中取出的第一行就是列名
飘_飘 2007-01-25
  • 打赏
  • 举报
回复
从返回的DataSet中取
for(int i =0;i<ds.rows.Count;i++)
{
ds.rows[i][列名];
}
飘_飘 2007-01-25
  • 打赏
  • 举报
回复
从返回查询的DataSet取就OK了
private OleDbConnection oleConn = null;
public DataAccess(string filePath)
{
oleConn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";" + "Extended Properties=Excel 8.0");
}

private void OpenConn()
{
if (oleConn.State == ConnectionState.Closed)
{
oleConn.Open();
}
}

private void CloseConn()
{
if (oleConn.State == ConnectionState.Open)
{
oleConn.Close();
}
}

/// <summary>
/// 查询
/// </summary>
/// <param name="oleCmdstr"></param>
/// <returns></returns>
public DataSet ReturnOleDataSet(string oleCmdstr)
{
this.OpenConn();
DataSet ds = new DataSet();
try
{
OleDbCommand oleCmd = new OleDbCommand();
oleCmd.Connection = oleConn;
oleCmd.CommandText = oleCmdstr;

OleDbDataAdapter oleDa = new OleDbDataAdapter(oleCmd);

oleDa.Fill(ds);
}
finally
{
this.CloseConn();
}
return ds;
}

110,567

社区成员

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

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

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