CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

请教:我用ASP。NET(C#)把EXCEL的文件读取到DATASET中,然后绑定至DATAGRID,为什么总有几个EXCEL的单元格内容丢掉呢??急死了··

楼主njusea(情定风波)2005-08-03 18:58:04 在 .NET技术 / ASP.NET 提问

请教:我用ASP。NET(C#)把EXCEL的文件全部读取到DATASET中,然后绑定至DATAGRID,为什么总有几个EXCEL的单元格内容丢掉呢··急死了··  
   
   
   
  EXCEL的单元格内肯定有内容的····  
  问题点数:50、回复次数:18Top

1 楼zhilunchen(他山居士)回复于 2005-08-03 19:43:57 得分 10

这可能是MS   Excel的Bug,我原来从SQL   Server导数据到Excel时,经常发现某些字段数据丢失.Top

2 楼njusea(情定风波)回复于 2005-08-03 19:47:45 得分 0

不是吧!!?  
   
  那怎么办?·?   可有其他的解决办法???Top

3 楼njusea(情定风波)回复于 2005-08-03 20:32:46 得分 0

没有大哥帮忙拉·····  
   
  自己再顶一下了!!Top

4 楼codeangel(http://www.wSoft.Net)回复于 2005-08-03 20:42:49 得分 0

是不是合并过来的?Top

5 楼njusea(情定风波)回复于 2005-08-03 20:58:04 得分 0

??  
  TO   codeangel(--   与人方便,自已方便   --)    
   
  不是的,我是把数据分别放在EXCEL文件的SHEET1,SHEET2中,然后分别把SHEET1,SHEET2中的数据全部读到DATASET的两个表中,然后把DATASET中的两个表分别插到数据库中,可是总有几个EXCEL单元格的内容被读取丢失!!!郁闷呢222···(我的EXCEL文件不是规则的,)Top

6 楼vcforeverya()回复于 2005-08-04 10:15:48 得分 0

会不会是程序有BUGTop

7 楼njusea(情定风波)回复于 2005-08-04 10:20:54 得分 0

我觉得没有啊111!!  
   
  因为丢失数据的单元格的前后单元格的数据都没有丢失!!!!  
   
  惟独中间的丢了!!!  
   
  Top

8 楼njusea(情定风波)回复于 2005-08-04 12:37:36 得分 0

看来没有人遇到此情况?·?·2  
  Top

9 楼net_lover(【孟子E章】)回复于 2005-08-05 07:41:29 得分 20

把Excel里的数字前加'Top

10 楼xuwenzhuo(约定好了!我们会撑着那把油纸伞风雨同路、不分不离、吃到老玩到老。)回复于 2005-08-05 08:39:32 得分 10

如果你的Excel的cell里数据是数字的话是读不出来的,你必须将它转化成字符型,就像楼上说的那样,数字前加'。Top

11 楼xuwenzhuo(约定好了!我们会撑着那把油纸伞风雨同路、不分不离、吃到老玩到老。)回复于 2005-08-05 08:43:12 得分 0

我以前也作过类似问题,还有就是,当Excel的数据达到几千行时,你读一下试试看,非常慢,内存占了大约100M左右。Top

12 楼njusea(情定风波)回复于 2005-08-05 09:55:46 得分 0

to   net_lover(孟子E章):  
   
  to   xuwenzhuo(xwz)   :  
   
  问题的根源看来是   数据类型不一致造成的··  
   
  如果我的EXCEL数据是不规则的,比如:EXCEL中某一列的值既有日期型的,字符型的,还有数字型的,等等,并且,每行的记录长度都不一样,  
  那又怎么办呢·?·?  
   
  Top

13 楼lang11zi(微软菜虫)回复于 2005-08-05 10:08:27 得分 0

用excel   application对象读   不会丢失  
   
  Top

14 楼fengfangfang()回复于 2005-08-09 14:17:57 得分 10

<%@   Page   language="c#"   Codebehind="WebForm1.aspx.cs"   AutoEventWireup="false"   Inherits="WebTest.WebForm1"   %>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN">  
  <HTML>  
      <HEAD>  
  <title>WebForm1</title>  
  <meta   content="Microsoft   Visual   Studio   .NET   7.1"   name=GENERATOR>  
  <meta   content="Visual   Basic   .NET   7.1"   name=CODE_LANGUAGE>  
  <meta   content=JavaScript   name=vs_defaultClientScript>  
  <meta   content=http://schemas.microsoft.com/intellisense/ie5   name=vs_targetSchema>  
      </HEAD>  
  <body>  
  <form   id=Form1   method=post   runat="server"><asp:button   id=Button1   runat="server"   Text="Button"></asp:Button><asp:datagrid   id=DataGrid1   runat="server"></asp:DataGrid></FORM>  
  </body>  
  </HTML>  
  Top

15 楼fengfangfang()回复于 2005-08-09 14:18:37 得分 0

private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
  string   excelFilePath=@"D:\Book1.xls";  
  Excel.Application   myExcel=new   Excel.ApplicationClass(   )   ;  
  object   oMissing   =   System.Reflection.Missing.Value   ;  
  myExcel.Application.Workbooks.Open(excelFilePath,oMissing,oMissing,oMissing,oMissing,oMissing, oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing)   ;  
  Excel.Workbook   myBook   =   myExcel.Workbooks[1]   ;  
  Excel.Worksheet   mySheet   =   (Excel.Worksheet)myBook.Worksheets[1]   ;  
  System.Data.DataTable   dt=new   System.Data.DataTable("rycjsb");  
  dt.Columns.Add("F1",   System.Type.GetType("System.String"));  
  dt.Columns.Add("F2",   System.Type.GetType("System.String"));  
  dt.Columns.Add("F3",   System.Type.GetType("System.String"));  
  dt.Columns.Add("F4",   System.Type.GetType("System.String"));  
  dt.Columns.Add("F5",   System.Type.GetType("System.String"));  
  DataSet   myDs   =   new   DataSet();  
  myDs.Tables.Add(dt);  
  DataRow   myRow;  
  myDs.Clear();  
  for(   int   i   =   2   ;   i   <=   4   ;   i   ++   )  
  {  
  myRow   =   myDs.Tables["rycjsb"].NewRow();  
  for(   int   j   =   1   ;   j   <=   5   ;   j   ++   )  
  {  
   
  //Excel.Range   r   =   mySheet.get_Range(mySheet.Cells[i,j],mySheet.Cells[i,j]);  
  Excel.Range   r=(Excel.Range)mySheet.Cells[i,j];  
  string strValue=r.Text.ToString();//         ((Excel.Range)r[i,j]).Cells.Text.ToString();  
  string   aa=strValue;  
  string   columnname="F"+j.ToString();  
  myRow[columnname]=strValue;  
  }  
  myDs.Tables["rycjsb"].Rows.Add(myRow);  
  }  
   
  DataGrid1.DataSource=myDs.Tables["rycjsb"].DefaultView;  
  DataGrid1.DataBind();  
   
  }Top

16 楼MrTangShunHai()回复于 2005-08-09 18:09:22 得分 0

问题就出在你的excel表不规则上   你得把excel表处理得规则点   这样就不会错拉   我以前也有你同样的问题出现过Top

17 楼xiaotian08(笑天)回复于 2005-08-19 18:02:36 得分 0

用Excel   Application   读不会丢,但是操作起来会麻烦一些Top

18 楼xiaotian08(笑天)回复于 2005-08-20 10:51:52 得分 0

http://202.102.240.86/~biyesheng/hongbo/news/show.php?filename=20041124163741.txt  
  昨天你说的那个问题,我以前没有碰到过,不过可能给你点参考,以前我把EXCEL中的数据导入到SQL   Server数据中,读出EXCEL时参考了这种方法,经过测试,可以把数据导入到数据库中,没有出现什么问题!如果你也是这样读取的,出了这个问题,除了建议你用Excel   Application读入数据,其它的我暂时没有办法!Top

相关问题

  • c#操作EXCEL如何让指定单元格“自动换行”?
  • 用C#如何合并excel的单元格及读取被合并了的单元格的数据?
  • EXcel单元格属性
  • 如何通过c#代码来隐藏excel中的某个指定的单元格?
  • 在线等c#操作excel问题--如何将指定的单元格赋予公式?
  • 用C#读取Excel文件:怎样从指定单元格开始向右向下读取数据?
  • 关于用C#改变excel单元格内容后,却未见保存的问题.
  • C#如何直接读取Excel指定单元格的值?很是着急,请帮忙。
  • C# 如何向excel中插入一行或一行, 如何设置单元格格式如颜色和边框,
  • 在C#中如何对Excel单元格设置背景色以及对Range设边框

关键词

  • c#

得分解答快速导航

  • 帖主:njusea
  • zhilunchen
  • net_lover
  • xuwenzhuo
  • fengfangfang

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo