通过OleDb连接读取excel得到多余空行

linchenrr 2010-11-05 11:30:58
如题,比如excel文件有50行记录,但是我读出来的table有70行。 现在发现原因是当你在那个表里面曾经写入过70行记录,保存一下,再删掉后面20行,但是读出来的table就仍然有70行,但是每个格子的值都是空的。


请教如何解决这种问题?




//源的定义
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties='Excel 8.0;HDR=NO;IMEX=1';";

//Sql语句
//string strExcel = string.Format("select * from [{0}$]", strSheetName); 这是一种方法
string strExcel = "select * from [sheet1$]";

//定义存放的数据表
DataSet ds = new DataSet();

//连接数据源
OleDbConnection conn = new OleDbConnection(strConn);

conn.Open();

//适配到数据源
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
adapter.Fill(ds, strSheetName);

conn.Close();


...全文
556 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tang195 2010-12-14
  • 打赏
  • 举报
回复
http://hytgx.blog.163.com/blog/static/331768412010111453516342/
看吧 我的Blog
里面有这个问题的解决方案
linchenrr 2010-11-05
  • 打赏
  • 举报
回复
人都吃饭去了吗..
linchenrr 2010-11-05
  • 打赏
  • 举报
回复
那怎么比较方便的删除掉空的行和列呢。。 dataset有提供方法判断么?

要是没有就只好自己写循环来判断了。。好麻烦啊
三岁、就很帅 2010-11-05
  • 打赏
  • 举报
回复
gomoku 2010-11-05
  • 打赏
  • 举报
回复
你删掉后面20行后,Excel数据提供方能判断以下情况吗:
1、故意放20条所有字段都是空的记录?
2、删除20条记录?

因为不能,比较安全的做法就是返回20条空记录。
如果你确定空记录非法,那么倒入到ds后删除空记录就是了。
asdfku 2010-11-05
  • 打赏
  • 举报
回复
用OleDbDataReader reader = cmd.ExecuteReader();试下
linchenrr 2010-11-05
  • 打赏
  • 举报
回复
顶上去...

110,534

社区成员

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

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

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