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




