求 ASP.NET (C#) 导入导出 Excel 的代码。

Mister 2005-08-09 09:58:54
我在一公司实习,分配写导入导出 Excel 模块的任务,该模块输出的页面是:在客户端将<TABLE>的内容导出 Excel 表格,并且可以把 Excel 表格导入到 ASP 站点的 SQL Server 服务器脚本。

如果直接把客户端的 Excel 表格导入到 ASP 站点的 SQL Server 服务器不太好实现,可以先把 Excel 表格上传到 ASP 站点的临时文件夹,然后再导入的 SQL Server 服务器,最后删除上传的 Excel 表格。

这个因该不难的,大家帮帮我!谢谢!! C# 编程我暂时还不行,这个模块明天下班前就要交了。我正在从其它语言转 C# ,现在正是我困难期,大家一定要帮我啊!交不了差,我就惨了....
...全文
1947 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
keiven 2005-11-01
  • 打赏
  • 举报
回复
mark
宇君 2005-09-27
  • 打赏
  • 举报
回复
作个记号,顶
wenl 2005-08-30
  • 打赏
  • 举报
回复
mark
skyfarwolf 2005-08-10
  • 打赏
  • 举报
回复
看这样你是要源码咯,你的要求没完全写清楚,比如客户端到底是怎么回事,还是已经有了Execel表;服务器端是不是已经有了SQLSERVER表,还是要重新建立表?
你又说还不懂c#,给你写个思路还怕你改不出来
Mister 2005-08-09
  • 打赏
  • 举报
回复
谢谢!
李天平 2005-08-09
  • 打赏
  • 举报
回复
Asp.net页面输出到EXCEL
【简 介】
  近来,在开发ISO文件管理系统的时候,曾经遇到过要将ASPX直接输出到EXCEL的需求,现将经验所得与大家分享。其实,利用ASP.NET输出指定内容的WORD、EXCEL、TXT、HTM等类型的文档很容易的。主要分为三步来完成。

一、定义文档类型、字符编码  

   Response.Clear();

   Response.Buffer= true;

   Response.Charset="utf-8";  

   //下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开

   //filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc    .xls    .txt   .htm  

   Response.AppendHeader("Content-Disposition","attachment;filename=FileFlow.xls");

   Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");  

   //Response.ContentType指定文件类型 可以为application/ms-excel    application/ms-word    application/ms-txt    application/ms-html    或其他浏览器可直接支持文档 

   Response.ContentType = "application/ms-excel";

   this.EnableViewState = false;  

  二、定义一个输入流  

   System.IO.StringWriter oStringWriter = new System.IO.StringWriter();

   System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);  

  三、将目标数据绑定到输入流输出  

   this.RenderControl(oHtmlTextWriter);   

   //this 表示输出本页,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件  

   Response.Write(oStringWriter.ToString());

   Response.End();  

  总结:本例程在Microsoft Visual Studio .NET 2003平台下测试通过,适用于C#和VB,当采用VB的时候将 this 关键字改成 me 。

李天平 2005-08-09
  • 打赏
  • 举报
回复
看看这个从excel批量倒入数据库
private DataSet GetCollection()
{
DataSet ds=new DataSet();
string strCon,strCmm;
// strCon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\irms\\tmp\\irsbd.xls;Extended Properties=Excel 8.0;";
strCon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("tmp\\irsbd.xls")+";Extended Properties=Excel 8.0;";
strCmm="select distinct * from [Sheet1$]";
OleDbConnection oleCnn=new OleDbConnection(strCon);
OleDbCommand oleCmm=new OleDbCommand(strCmm,oleCnn);
OleDbDataAdapter oleDa=new OleDbDataAdapter(oleCmm);
oleDa.Fill(ds,"irsbd");

return ds;

}

private void PutData(DataSet ds)
{
string strCon=Application["strCon"].ToString();
string strSql="select top 1 * from irsbd";
DataSet myDs=new DataSet();
SqlDataAdapter da=new SqlDataAdapter(strSql,strCon);
da.Fill(myDs,"irsbd");
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
if(ds.Tables[0].Rows[i]["sbdno"].ToString().Trim()!="")
{
DataRow dr=myDs.Tables[0].NewRow();
DataRow dr1=ds.Tables[0].Rows[i];
dr["sbdno"]=dr1["sbdno"];
dr["sbdnm"]=dr1["sbdnm"];
dr["sbdpd"]=dr1["sbdno"];
dr["sbdit"]=dr1["sbdit"];
dr["sbddt"]=dr1["sbddt"];
dr["sbdco"]=tbCo.Text.Trim();

dr["sbdel"]=DateTime.Today;
dr["sbdcs"]=0;
dr["sbdas"]=0;
dr["sbdps"]=0;
dr["sbdcs1"]=0;
dr["sbdcs2"]=0;
dr["sbdcs3"]=0;
dr["sbdcs4"]=0;
dr["sbdas1"]=0;
dr["sbdas2"]=0;
dr["sbdas3"]=0;
dr["sbdas4"]=0;

myDs.Tables[0].Rows.Add(dr);
}

SqlCommandBuilder sqlCb=new SqlCommandBuilder(da);

da.Update(myDs,"irsbd");
myDs.AcceptChanges();
}

李天平 2005-08-09
  • 打赏
  • 举报
回复
一个导excel入sql数据库的我正用的程序,是button1按钮一点就开始导入,我导的是excel是第二三colum..如下:

private void Button1_Click(object sender, System.EventArgs e)
{


string mystring="Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = 'D:/ExportToExcel/excel/test.xls';Extended Properties=Excel 8.0";
OleDbConnection cnnxls = new OleDbConnection (mystring);
OleDbDataAdapter myDa =new OleDbDataAdapter("select * from [Sheet1$]",cnnxls);
DataSet myDs =new DataSet();
myDa.Fill(myDs);

if(myDs.Tables[0].Rows.Count > 0)
{
string strSql = "";
string CnnString="Provider=SQLOLEDB;database=testnews;server=(local);uid=sa;pwd=";
OleDbConnection conn =new OleDbConnection(CnnString);
conn.Open ();
OleDbCommand myCmd =null;

for(int i=0; i<myDs.Tables[0].Rows.Count; i++)
{
strSql="insert into news(title,body) values ('";
strSql += myDs.Tables[0].Rows[i].ItemArray[1].ToString() + "', '";
strSql += myDs.Tables[0].Rows[i].ItemArray[2].ToString() + "')";

try
{
myCmd=new OleDbCommand(strSql,conn);
myCmd.ExecuteNonQuery();
Label8.Text = "<script language=javascript>alert('数据导入成功.');</script>";
}
catch
{
Label8.Text = "<script language=javascript>alert('数据导入失败.');</script>";
}
}
conn.Close();
}

}
}

Mister 2005-08-09
  • 打赏
  • 举报
回复
注:上文“SQL Server 服务器脚本”是指将 Excel 表格导入到数据库的 ASP 脚本。

句子没表达好,怕大家误解,特此说明一下。

另外说明一下:一定要是 C# 语言编写,这是领导指定的。

62,046

社区成员

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

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

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

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