怎样在.net中使用C#操作Excel?
请教高手介绍一下如何在Web中使用C#调用Excel,包括存取等。具体为:将Excel模板文件保存在web服务器下,客户端可以在IE中打开Excel模板,并做格式的调整处理等。谢谢了。 问题点数:100、回复次数:6Top
1 楼dy_2000_abc(芝麻开门)回复于 2002-12-03 18:17:00 得分 20
下面代码示例如何在客户端打开服务器端的Excel模版,格式调整?不知道是不是想将调整后的文件回传到服务器?。
using System;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
namespace abc
{
public class abc_Excel : System.Web.UI.Page
{
public void Page_Load(System.Object sender, System.EventArgs e)
{
Stream stream=File.Open("..\\test.xsl",FileMode.Read);
byte[] b=new byte[stream.Length];
stream.Read(b,0,b.Length);
Response.AppendHeader("Content-Disposition","attachment; filename=test.xsl")
Response.ContentType ="*.xsl";//设定输出文件类型
//输出文件二进制数制
Response.OutputStream.Write(b, 0, b.Length);
Response.End();
stream.Close();
}
}
}Top
2 楼jb2008(飞天.net)回复于 2002-12-03 18:41:16 得分 20
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;
namespace WS_test
{
/// <summary>
/// Excel 的摘要说明。
/// </summary>
public class Excel : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dgEmps;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
BindGrid();
}
}
//--------------------
private void BindGrid()
{
this.dgEmps.DataSource = CreateDataSource().Tables["exeltable"].DefaultView;
this.dgEmps.DataBind();
}
//---------------------
private DataSet CreateDataSource()
{
string mySQL = "SELECT * FROM [Sheet1$]";
string filepath = Server.MapPath("tools.xls");
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0; Data Source=" + filepath;
OleDbDataAdapter myAdp = new OleDbDataAdapter(mySQL,strConn);
DataSet ds = new DataSet();
myAdp.Fill(ds,"exeltable");
return ds;
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
Top
3 楼okokwukai(不老仙翁)回复于 2002-12-03 19:32:20 得分 0
Why no relase Excel lib?Top
4 楼yuanlion(路人)回复于 2002-12-04 10:13:01 得分 0
to : dy_2000_abc(芝麻开门) and jb2008(飞天.net) ,对不起我可能没说清楚,我是想先将数据填充到Excel模板中,然后打开文件在客户端显示出来。Top
5 楼dy_2000_abc(芝麻开门)回复于 2002-12-04 13:43:40 得分 0
是不是数据保存在数据库服务器,excel模版保存在web服务器,现在想在客户端提取数据库服务器的数据,使用指定的excel模版将数据显示出来?Top
6 楼sumanden(心头慌,打中张)回复于 2002-12-04 15:17:48 得分 60
解决参考方案:
1、生成包含数据的xls文件:在Web服务器上生成利用已有的Excel模块生成Excel文件,客户端可通过IE打开Excel文件或使用脚本,利用客户端的Excel来打开文档。
2、模板的修改:这属于上传下载的问题。Top




