求excel 导入sql 的实例

wei125706526 2009-05-19 05:32:05
用.net实现的(工具最好是 vs2005,sql server 2000)。因为我是一个菜鸟,所以需要个完整的事例(最好有注释)。希望大家多多支持,有的发到我邮箱:qingai_0517@126.com
运行成功后,加分!!!当然,你们也要报出自己的邮箱,不然我不知道是谁发的啊,呵呵
...全文
345 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
totsheng 2009-05-26
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 wei125706526 的回复:]
我晕...算了,哎,没人理我,结贴算了。。。。。。
[/Quote]
发邮箱到你 也没收到,把代码回帖给你了也,不知道你到底想要个啥....
wei125706526 2009-05-26
  • 打赏
  • 举报
回复
我晕...算了,哎,没人理我,结贴算了。。。。。。
wei125706526 2009-05-22
  • 打赏
  • 举报
回复
大侠们帮忙啊,我快顶不住了!!!
wei125706526 2009-05-22
  • 打赏
  • 举报
回复
那发到QQ 邮箱吧, 357794837 哎......
CqCoder 2009-05-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zzxap 的回复:]
asp.net操作Excel总结

asp.net操作Excel是B/S架构开发报表中经常遇到的,现对常见操作总结如下: 
以下来自孟子e章

DataGrid输出到Excel并进行格式化处理
用Xml2OleDb将XML文件插入到数据库
在C#中利用Excel做高级报表
在ASP.NET中将数据直接输出成Excel内容
在.NET环境下将报表导出Excel和Word
将DataGrid输出到Excel文件
把Excel文件中的数据读入到DataGrid中


Other

关于asp.net导出Excel
ht…
[/Quote]赞···高手们就应该像这位学习··
totsheng 2009-05-21
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 wei125706526 的回复:]
我邮箱里面没得你的例子啊????
[/Quote]

private void btnLoad_Click(object sender, EventArgs e)
{
ds = new DataSet();
this.openFileDialog.ShowDialog();
string Path = this.openFileDialog.FileName;
if (Path == "openFileDialog") return;
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
//string sText;
OleDbConnection conn = new OleDbConnection(strConn);
string strExcel = "";
strExcel = "select * from [sheet1$]";
OleDbCommand cmd = new OleDbCommand(strExcel, conn);
try
{
conn.Open();
OleDbDataAdapter oda = new OleDbDataAdapter(cmd);
oda.Fill(ds);
this.ddvData.DataSource = ds.Tables[0];
//for (int i = 0; i < this.ddvData.RowCount; i++)
//{
// this.ddvData.Rows[i].ReadOnly = true;
//}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
conn.Close();
}




if (ds == null) MessageBox.Show("无数据!");
string table = "testtable";
string strConn = ConfigurationSettings.AppSettings["SQLConnectString"];
SqlConnection conn = new SqlConnection(strConn);
string cCmd = "if exists (select * from sysobjects where id = object_id(N'[dbo].[" + table + "]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[" + table + "] create table " + table + " (";
for (int i = 0; i < this.ddvData.ColumnCount; i++)
{
cCmd += this.ddvData.Columns[i].HeaderText + " varchar(30),";
}
cCmd.Substring(0, cCmd.Length - 1);
cCmd += ")";
SqlCommand ccmd = new SqlCommand(cCmd, conn);
try
{
conn.Open();
ccmd.ExecuteReader();
conn.Close();
string strCmd = "insert into " + table + " (";
for (int i = 0; i < this.ddvData.ColumnCount; i++)
{
strCmd += this.ddvData.Columns[i].HeaderText;
if (i != this.ddvData.ColumnCount - 1)
strCmd += ",";
}
strCmd += ") values (";

//strCmd.Substring(0, strCmd.Length - 1);

for (int i = 0; i < this.ddvData.RowCount; i++)
{
string strCs = "";
for (int j = 0; j < this.ddvData.ColumnCount; j++)
{
strCs += "'" + ds.Tables[0].Rows[i][j].ToString() + "'";
if (j != this.ddvData.ColumnCount - 1)
strCs += ",";
}
//strCs.Substring(0, strCs.Length - 1);
strCs += " )";
string scmd = strCmd + strCs;
SqlCommand cmd = new SqlCommand(scmd, conn);
conn.Open();
cmd.ExecuteReader();
conn.Close();
}
// if (i > 0)
MessageBox.Show("success");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
conn.Close();

收不到邮件我也没办法了
前一个是导入EXCEL,后一个是插入数据库。自己根据自己的程序再改改吧!
wei125706526 2009-05-21
  • 打赏
  • 举报
回复
我邮箱里面没得你的例子啊????
wei125706526 2009-05-21
  • 打赏
  • 举报
回复
大侠们,给个例子啊。。。
zhongxingqiche 2009-05-20
  • 打赏
  • 举报
回复
帮顶!!
zzxap 2009-05-20
  • 打赏
  • 举报
回复
asp.net操作Excel总结

asp.net操作Excel是B/S架构开发报表中经常遇到的,现对常见操作总结如下: 
以下来自孟子e章

DataGrid输出到Excel并进行格式化处理
用Xml2OleDb将XML文件插入到数据库
在C#中利用Excel做高级报表
在ASP.NET中将数据直接输出成Excel内容
在.NET环境下将报表导出Excel和Word
将DataGrid输出到Excel文件
把Excel文件中的数据读入到DataGrid中


Other

关于asp.net导出Excel
http://www.cnblogs.com/caizinet/archive/2005/05/11/152908.aspx

ASP.NET & Excel
http://www.cnblogs.com/birdshome/favorite/1666.html

如何使用 ASP.NET、ADO.NET 和 Visual C# .NET 查询和显示 Excel 数据
http://support.microsoft.com/default.aspx?scid=kb;zh-cn;306572

必学:将Asp.Net页面输出到EXCEL里去
http://blog.edu.cn/user1/18141/archives/2005/198690.shtml

ASP.NET中数据库数据导入Excel并打印
http://www.weste.net/2004/12-20/11440068743.html

Microsoft Excel for Data Analysis and Reporting in ASP.NET
http://www.asp101.com/articles/jayram/exceldotnet/default.asp

在ASP.NET下用Microsoft Excel进行数据分析与报表
http://dev.csdn.net/develop/article/20/20283.shtm

如何在ASP.NET中用OWC绘制图表
http://tech.ccidnet.com/pub/article/c1111_a65936_p1.html

Export data to Excel by using an HTTPHandler, XSLT, and ASP.NET
http://www.kbalertz.com/kb_871040.aspx

在asp.net访问Excel文件
http://www.chinacs.net/archives/2/2001/06/29/361.html

Using Office Web Components to Load Excel Workbooks and do Calculations
http://www.eggheadcafe.com/articles/20030725.asp

Link ASP.NET Data Grid to Microsoft Excel in the client side
http://www.codeproject.com/aspnet/DGExdel.asp

Create your ASP & ASP.NET-pages using Excel
http://www.exceleverywhere.com/excel-asp-net.htm

Exporting to Excel in Crystal Reports .NET
http://aspalliance.com/478

Create Dynamic ASP.NET Excel Workbooks In C#
http://www.eggheadcafe.com/articles/20021012.asp

ASP.NET中数据库数据导入Excel并打印
http://www.chinacs.net/archives/2/2005/01/28/195.html

将Asp.Net页面输出到EXCEL里去
http://www.pconline.com.cn/pcedu/empolder/net/0412/513965.html

关于asp.net导出Excel
http://www.cnblogs.com/caizinet/archive/2005/05/11/152908.aspx


特别推荐:纯VB.NET代码直接生成Excel文件(不需要Excel)
http://unruledboy.cnblogs.com/archive/2004/07/07/22093.html
zzxap 2009-05-20
  • 打赏
  • 举报
回复
[code=C#]
excel导入数据库的代码
using XFXOA;
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data .OleDb ;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Web.Security;
namespace OA
{

public class ExceltoAccess : System.Web.UI.Page
{

OAConfig OAConfig1=new OAConfig();
private void Page_Load(object sender, System.EventArgs e)
{
//try{if(!OAConfig1.LogonChk((Request.Cookies["logonyn"].Value).ToString()))Response.Redirect("/logon_wrong.aspx");}catch{Response.Redirect("/logon_wrong.aspx");}

//if (!IsPostBack)
//{
try
{

OleDbDataReader dr1 = OAConfig1.MyReaderexcel("/source_file.xls","00",3,"SELECT * FROM [空间$]");
if(dr1.Read())
{
do
{
string ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("/targetdb.mdb")+";Jet OLEDB:Database Password=;";
OleDbConnection Connother = new OleDbConnection(ConnString);
if (Connother.State == ConnectionState.Closed)Connother.Open();
OleDbCommand MyComm=new OleDbCommand("insert into 空间 (A,B,C,D,E,F,G) values ('"+dr1[0].ToString()+"','"+dr1[1].ToString()+"','"+dr1[2].ToString()+"','"+dr1[3].ToString()+"','"+dr1[4].ToString()+"','"+dr1[5].ToString()+"','"+dr1[6].ToString()+"')", Connother);
MyComm.ExecuteNonQuery();
MyComm.Dispose();
Connother.Close();
}
while(dr1.Read());

}
else
{
Response.Write("此Excel表是空的");
}
dr1.Close();
}
finally
{

OAConfig1.CloseConnexcel();

}
Response.Write("此Excel导入ACCESS成功");

}

//public void Button1_click(object sender, System.EventArgs e)
//{


//}

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
//this.Button1.Click += new System.EventHandler(this.Button1_click);
//this.Button2.Click += new System.EventHandler(this.Button2_click);
}
#endregion
}
}
[/CODE]
totsheng 2009-05-20
  • 打赏
  • 举报
回复
已发到你邮箱里了,根据你自己的数据库改改连接啥的吧。
wei125706526 2009-05-20
  • 打赏
  • 举报
回复
那位大哥发个例子到这个邮箱:qingai_0517@126.com 小弟感激不尽啊,我把我所有的家当都送出去,

这个题烦了我好几天了,在搞不出来就要下岗了,求救啊,才找到工作,不想失业啊!!!
rsdfsdfwe 2009-05-20
  • 打赏
  • 举报
回复
public DataTable ImportToDataTable(string filepath, string sheetname)
{

OleDbConnection connection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" + filepath + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1;'");
DataTable dt = new DataTable();
connection.Open();
dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

if (dt.Rows.Count > 0)
{

OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [" + dt.Rows[0]["TABLE_NAME"] + "]", connection);

DataSet set = new DataSet();


adapter.Fill(set);
connection.Close();

return set.Tables[0];
}
else
{
connection.Close();
return null;
}
}
用上面的方法,导成DATATABEL,就好处理了
wei125706526 2009-05-20
  • 打赏
  • 举报
回复
怎么没有人顶了,我在网上找了好久,都照不到完整的例子,哎。。。excel 导入sql 咋就这么难呢/
wei125706526 2009-05-20
  • 打赏
  • 举报
回复
谢谢大家鼎力相助,看到 大家给的代码,我自己还是搞不出来,我是新手,太多不懂了,谁个发个完整的例子到我的邮箱啊
wuyq11 2009-05-19
  • 打赏
  • 举报
回复
先上传文件到服务器,再打开excel导入数据到sql server
参考
参考

lupanlupan 2009-05-19
  • 打赏
  • 举报
回复
var fso, exName;
try{
fso = new ActiveXObject("Scripting.FileSystemObject");
if(!fso.FileExists(fileSpec)) {//check if a file exists
alert("\"" + fileSpec + "\" 文件不存在!");
return;
}

extName = fso.GetExtensionName(fileSpec).toUpperCase();
if(extName != "DXF" && extName != "GPX" && extName != "CSV" && extName != "TXT") {
alert("警告:数据文件类型必须为:DXF、GPX、CSV或TXT!");
return;
}
}
catch(e) {
alert("ERROR:" + e.message);
return;
}
蓝海D鱼 2009-05-19
  • 打赏
  • 举报
回复
create proc p_exporttb 
@sqlstr varchar(8000), --查询语句,如果查询语句中使用了order by ,请加上top 100 percent
@path nvarchar(1000), --文件存放目录
@fname nvarchar(250), --文件名
@sheetname varchar(250)='' --要创建的工作表名,默认为文件名
as
declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int
declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)

--参数检测
if isnull(@fname,'')='' set @fname='temp.xls'
if isnull(@sheetname,'')='' set @sheetname=replace(@fname,'.','#')

--检查文件是否已经存在
if right(@path,1)<>'' set @path=@path+''
create table #tb(a bit,b bit,c bit)
set @sql=@path+@fname
insert into #tb exec master..xp_fileexist @sql

--数据库创建语句
set @sql=@path+@fname
if exists(select 1 from #tb where a=1)
set @constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READ'
+';CREATE_DB="'+@sql+'";DBQ='+@sql
else
set @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="Excel 8.0;HDR=YES'
+';DATABASE='+@sql+'"'

--连接数据库
exec @err=sp_oacreate 'adodb.connection',@obj out
if @err<>0 goto lberr

exec @err=sp_oamethod @obj,'open',null,@constr
if @err<>0 goto lberr

--创建表的SQL
declare @tbname sysname
set @tbname='##tmp_'+convert(varchar(38),newid())
set @sql='select * into ['+@tbname+'] from('+@sqlstr+') a'
exec(@sql)

select @sql='',@fdlist=''
select @fdlist=@fdlist+',['+a.name+']'
,@sql=@sql+',['+a.name+'] '
+case
when b.name like '%char'
then case when a.length>255 then 'memo'
else 'text('+cast(a.length as varchar)+')' end
when b.name like '%int' or b.name='bit' then 'int'
when b.name like '%datetime' then 'datetime'
when b.name like '%money' then 'money'
when b.name like '%text' then 'memo'
else b.name end
FROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype
where b.name not in('image','sql_variant','varbinary','binary','timestamp')
and a.id=(select id from tempdb..sysobjects where name=@tbname)

if @@rowcount=0 return

select @sql='create table ['+@sheetname
+']('+substring(@sql,2,8000)+')'
,@fdlist=substring(@fdlist,2,8000)

exec @err=sp_oamethod @obj,'execute',@out out,@sql
if @err<>0 goto lberr

exec @err=sp_oadestroy @obj

--导入数据
set @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel 8.0;HDR=YES
;DATABASE='+@path+@fname+''',['+@sheetname+'$])'

exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from ['+@tbname+']')

set @sql='drop table ['+@tbname+']'

exec(@sql)
return


lberr:
exec sp_oageterrorinfo 0,@src out,@desc out
lbexit:
select cast(@err as varbinary(4)) as 错误号
,@src as 错误源,@desc as 错误描述
select @sql,@constr,@fdlist



GO

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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