如何在网页里嵌入excel
如何在网页里嵌入excel?要求:
在网页内可以选择一个事先创建的excel模板,在网页里打开,如一个订单的excel的模板之类的,然后能从数据库里将数据填充到excel里指定的单元格,并且可以修改excel内的数据,然后保存回数据库内.
哪位大侠知道怎么实现,提供思路也可以,多谢! --------------------编程问答-------------------- 如何在Web页面上直接打开、编辑、创建Office文档
http://blog.joycode.com/kaneboy/archive/2004/11/03/37889.aspx --------------------编程问答-------------------- 也可以使用DSO Framer OCX
教程
http://www.cnblogs.com/Dragonpro/archive/2005/09/01/228144.html --------------------编程问答-------------------- 如果客户端不安装office可以实现吗? --------------------编程问答-------------------- 实现不了! --------------------编程问答-------------------- 友情UP一下 --------------------编程问答-------------------- up --------------------编程问答-------------------- UP --------------------编程问答-------------------- 用友的华表cell也可以 --------------------编程问答-------------------- ding --------------------编程问答-------------------- 可以是可以,不过必须使用Excel Service。
类似于Google的Docs --------------------编程问答-------------------- up --------------------编程问答-------------------- mark --------------------编程问答-------------------- 1,owc
2,activex
3,other cell com --------------------编程问答-------------------- excel不是国际标准的文档格式,必须安装excel相关的组件 --------------------编程问答-------------------- owc可以实现? to liujiayu10(www.xybxy.com) 能提供具体的解决方法吗? --------------------编程问答-------------------- 收藏一下,有用 --------------------编程问答-------------------- mark --------------------编程问答-------------------- 楼主可以去
http://community.csdn.net/Expert/topic/5623/5623645.xml?temp=.3702967
肯定对你有用,看看得分的人的地址。 --------------------编程问答-------------------- Mark
--------------------编程问答-------------------- 说明一点:
不是在网页里面嵌入excel。
实现方法如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Execl_test : System.Web.UI.Page
{
int k = 1;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
SetBind();
}
}
private void SetBind()
{
string sql = "select * from employees";
DataTable dt = Data.ExecuteDataTable(CommandType.Text,sql,null);
DataGrid1.DataSource = dt;
DataGrid1.DataBind();
}
protected void DataGrid1_ItemCommand(object source, DataGridCommandEventArgs e)
{
int k = -1;
if (e.CommandName == "edit")
{
this.DataGrid1.EditItemIndex = e.Item.ItemIndex;
this.DataGrid1.EditItemIndex = e.Item.ItemIndex;
SetBind();
}
if (e.CommandName == "update")
{
try
{
Hashtable ht = new Hashtable();
ht.Add("cname",((TextBox)e.Item.Cells[3].Controls[0]).Text);
ht.Add("cpwd",((TextBox)e.Item.Cells[4].Controls[0]).Text);
ht.Add("caccount",((TextBox)e.Item.Cells[5].Controls[0]).Text);
string sql = MyFunc.GenerateSQLUpdate(ht, "employees") + "where ID="+this.DataGrid1.DataKeys[e.Item.ItemIndex] +"";//
k = Data.ExecuteNonQuery(CommandType.Text,sql,null);
if (k > 0)
{
MyFunc.alert("更新成功!",this.Page);
}
}
catch(Exception ex)
{
MyFunc.alert("更新失败,失败原因:"+ ex.Message +"",this.Page);
//Response.Write("<script>alert('输入的数据格式有误');</script>");
}
finally
{
this.DataGrid1.EditItemIndex = -1;
SetBind();
}
}
}
protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
((Label)e.Item.FindControl("lb")).Text = k.ToString("00");
k++;
e.Item.Attributes.Add("onclick", "__doPostBack('" + ((LinkButton)e.Item.Cells[6].Controls[0]).ClientID.Replace("_", "$") + "',' ')");
}
if (e.Item.ItemType == ListItemType.EditItem)
{
e.Item.Attributes.Add("ondblclick", "__doPostBack('" + ((LinkButton)e.Item.Cells[7].Controls[0]).ClientID.Replace("_", "$") + "',' ')");
for (int i = 2; i < 6; i++) ((TextBox)e.Item.Cells[i].Controls[0]).Attributes.Add("onmouseover", "this.select()");
}
}
}
--------------------编程问答-------------------- DSO Framer OCX
不错! --------------------编程问答-------------------- Office2003以后,有一个ActiveX控件被安装到了系统中,这个控件位于“Program Files\Microsoft Office\OFFICE11\owssupp.dll”。通过这个控件,客户端页面上的JavaScript就可以激活本地的Office软件,来实现打开、编辑Office文档。(另,Office XP应该就已经包含这个ActiveX控件了。)
首先,用Script创建一个本地的对象:
openDocObj = new ActiveXObject("SharePoint.OpenDocuments.2"); // 为了兼容Office XP,可以创建“SharePoint.OpenDocuments.1”
然后,调用openDocObj的相应的方法。比如打开服务器上的一个Office文档:
openDocObj.ViewDocument("http://www.abc.com/documents/sample.doc");
openDocObj对象会根据参数中不同的Office文档类型(.doc、.xls、.ppt)来打开不同的程序(Word、Excel、PowerPoint)。ViewDocument()方法还有一个重载签名,可以让我们手工指定激活哪个程序来打开文档:
openDocObj.ViewDocument("http://www.abc.com/documents/sample.doc", 要激活的程序的ProgID);
那么要打开Office程序在线编辑文件又如何?
openDocObj.EditDocument("http://www.abc.com/documents/sample.doc");
就可以直接激活Word,在Word里面编辑文档,然后直接点击Word里面的保存功能,就可以将文件保存会服务器上了。注意:为了让Word能将编辑后的文档直接保存会服务器,访问Web站点的当前上下文的Windows Identity必须对服务器的相应目录(即“http://www.abc.com/documents”这个虚拟目录所对应的服务器上的物理路径)有相应的写权限,否则保存动作会失败。编辑完成后,EditDocument()会返回一个bool值,来反映编辑操作是否成功。
我们还可以通过打开服务器上的一个文档模版,来创建一个新的文档:
openDocObj.CreateNewDocument("http://www.abc.com/documents/sampleTemplate.dot", "http://www.abc.com/documents/");
就可以使用“http://www.abc.com/documents/sampleTemplate.dot”这个模版来创建一个新的文档,默认新文档的保存地点是“http://www.abc.com/documents/”。创建新文档时使用的程序取决于模版文件的类型(比如.dot模版会对应Word)。新文档的保存同样需要注意权限问题。CreateNewDocument()方法同样会返回一个bool值来反映操作是否成功。
CreateNewDocument()方法的第一个参数,除了可以使用一个模版的地址外,还可以直接指定为希望用来创建新文档的客户端程序的ProgID。
--------------------编程问答-------------------- 学习中... --------------------编程问答-------------------- up --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- activeX --------------------编程问答-------------------- 我们正在做这个项目,有源码
http://playzxw.blogspot.com/2008/09/excel.html
--------------------编程问答-------------------- 正在找啊,多谢了 --------------------编程问答-------------------- 发表于:2007-09-16 21:23:14 --------------------编程问答-------------------- 学习 帮顶。。。。。。。。 --------------------编程问答-------------------- 学习下,看看链接。。。 --------------------编程问答-------------------- 上面的发的链接都打不开,我晕。随便搞的啊。
补充:.NET技术 , ASP.NET