| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1881 人关注过本帖
标题:[求助]把Excel表导入到dataGrid里
只看楼主 加入收藏
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 

string FileNamePath = "你要导出的EXCEL的路径";
System.Data.DataTable dt = new System.Data.DataTable();
FileStream myFileStream = new FileStream(FileNamePath,FileMode.OpenOrCreate,FileAccess.Write);
StreamWriter myStreamWriter = new StreamWriter(objFileStream,System.Text.Encoding.Unicode);
string writeLine = "";
for( int i = 0 ; i < dt.Columns.Count ; i++ )
{
writeLine = writeLine + dt.Columns[i].ColumnName.ToString()+Convert.ToChar(9);
}
myStreamWriter.WriteLine(strLine);
writeLine = "";
for(int i = 0 ; i < dt.Rows.Count ; i++)
{
writeLine = writeLine + (i+1) + Convert.ToChar(9);
for(int j = 1 ; j < dt.Columns.Count ; j++)
{
writeLine = writeLine + dt.Rows[i][j].ToString() + Convert.ToChar(9);
}
myStreamWriter.WriteLine(writeLine);
writeLine = "";
}
myStreamWriter.Close();
myFileStream.Close();


一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-10-05 19:17
dhddna
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2005-9-22
收藏
得分:0 
谢谢,版主,版主你用过C1StudioDotNet里的控件吗?

要赢就赢得幸福,要输就输给追求!
2006-10-05 19:42
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 

呵呵,不客气,不要叫我版主哦,听起来的点.......叫我冰鹰就行了.嘿嘿.


一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-10-05 19:45
laojiang8
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2006-8-23
收藏
得分:0 
以下是引用mylover624在2006-10-5 17:47:18的发言:
可以啊,把里面的代码改一下就行了。
string tableName = TextBox1.Text.Trim();//自己输入一个表名。
string SelectStr = "select * from " + tableName ;

但是如果和datagrid 关联起来,那个代码怎么写呀,我写了好长时间都写不对,不知道怎么搞的
你看一下
OleDbDataAdapter odd = new OleDbDataAdapter (cmd);
DataSet ds = new DataSet ();
odd.Fill (ds,"["+ tablename+"$]");
this.dataGrid1 .DataSource = ds;
this.dataGrid1 .DataMember ="["+tablename+"$]";
这样编译能通过但是打开表格的时候就出问题了


既然你选择了前方,就要风雨兼程
2006-10-06 17:58
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 
那就不要这句撒.this.dataGrid1 .DataMember ="["+tablename+"$]";

一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-10-06 18:06
laojiang8
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2006-8-23
收藏
得分:0 
试一下

既然你选择了前方,就要风雨兼程
2006-10-07 08:21
monkey1931
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-3-22
收藏
得分:0 

谁有相反的例子啊,把gridview中的数据导excl啊,求助

2007-01-14 21:18
jacklee
Rank: 7Rank: 7Rank: 7
来 自:XAplus
等 级:贵宾
威 望:32
帖 子:1769
专家分:104
注 册:2006-11-3
收藏
得分:0 
对直接可以操作EXCEL当OLE数据库一样操作

XAplus!
讨论群:51090447
删吧删吧,把我的号给删了!
2007-01-15 08:55
jacklee
Rank: 7Rank: 7Rank: 7
来 自:XAplus
等 级:贵宾
威 望:32
帖 子:1769
专家分:104
注 册:2006-11-3
收藏
得分:0 
得到EXCEL文件所有SHEET:
int i=0;
string con="Provider=Microsoft.JET.OLEDB.4.0;data source="+OlePath+";Extended Properties=Excel 8.0";
OleConn=new OleDbConnection (con);
try
{
OleConn.Open ();
DataTable ts=OleConn.GetOleDbSchemaTable (OleDbSchemaGuid.Tables, new object[] {null, null, null, "TABLE"});
OleConn.Close ();
foreach(DataRow dr in ts.Rows)
{
tables[i++]="["+dr[2].ToString ()+"]";
}
tables_=i;
ts.Dispose ();
}
得到DATASET(SHEET内容)可以用DATASET填充DATAGRID:
string[] col=new string [300];
int i=0;
string con=null;
if(this.DataType =="excel")
con="Provider=Microsoft.JET.OLEDB.4.0;data source="+OlePath+";Extended Properties=Excel 8.0";
else
con="Provider=Microsoft.JET.OLEDB.4.0;data source="+OlePath;
OleConn=new OleDbConnection (con);
OleFill=new OleDbDataAdapter ("select * from "+oletable,OleConn);
dataset=new DataSet ();
try
{
OleFill.Fill (dataset,oletable);
rows=dataset.Tables [oletable].Rows .Count ;
cols=dataset.Tables [oletable].Columns .Count ;
for(int j=0;j<cols;j++)
col[++i]=dataset.Tables [oletable].Columns [j].ToString ();
}

老以前代码里抽出来的,有些变量是类里面的所以郁闷些,这里有但看似没定义。

XAplus!
讨论群:51090447
删吧删吧,把我的号给删了!
2007-01-15 09:03
快速回复:[求助]把Excel表导入到dataGrid里
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018326 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved