热门标签:
asp.net 调用word
浏览量:
作者:佚名
来源:互联网
最近一个项目中用到了浏览器调用word,现在大概总结如下:
1,需要用到ActivX控件dsoframer.ocx
2,javascript
dsoframer.js代码如下:
- var str = '';
- str += '<div id="DivID">';
- str += '<OBJECT id="FramerControl1" codeBase="dsoframer.ocx" height="100%" width="998px" classid="clsid:00460182-9E5E-11D5-B7C8-B8269041DD57" VIEWASTEXT>';
- str += '<PARAM NAME="_ExtentX" VALUE="16960">';
- str += '<PARAM NAME="_ExtentY" VALUE="13600">';
- str += '<PARAM NAME="BorderColor" VALUE="-2147483632">';
- str += '<PARAM NAME="BackColor" VALUE="-2147483643">';
- str += '<PARAM NAME="ForeColor" VALUE="-2147483640">';
- str += '<PARAM NAME="TitlebarColor" VALUE="-2147483635">';
- str += '<PARAM NAME="TitlebarTextColor" VALUE="-2147483634">';
- str += '<PARAM NAME="BorderStyle" VALUE="1">';
- str += '<PARAM NAME="Titlebar" VALUE="0">';
- str += '<PARAM NAME="Toolbars" VALUE="1">';
- str += '<PARAM NAME="Menubar" VALUE="1">';
- str += '</OBJECT>';
- str += '</div>';
- document.write(str);
3.SaveWord.aspx,用来保存word到指定目录
SaveWord.aspx.cs代码如下
- using System;
- using System.Collections;
- using System.ComponentModel;
- using System.Data;
- 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.IO;
- using System.Net;
- namespace dsoframer {
- ///
- /// SaveDoc 的摘要说明。
- ///
- public partial class SaveDoc : System.Web.UI.Page {
- readonly int enterCount = 12;
- string[] requestValues = new string[3];
- protected void Page_Load(object sender, System.EventArgs e) {
- BinaryReader br = new BinaryReader(Request.InputStream);
- br.BaseStream.Seek(0,SeekOrigin.Begin);
- int enterNo = 0;
- int streamHeadLen = 0;
- while(br.BaseStream.Position < br.BaseStream.Length) {
- streamHeadLen ++;
- char c = (char)br.ReadByte();
- if(enterNo < enterCount){
- if(c == '\n'){
- enterNo ++;
- }
- }
- else{
- break;
- }
- }
- br.BaseStream.Seek(0,SeekOrigin.Begin);
- string strTemp = System.Text.UTF8Encoding.Default.GetString(br.ReadBytes(streamHeadLen - 1));
- string str ="";
- int index=0;
- string[] requestStrings = {"RecordID","UserID"};
- for(int i=0;i<requestStrings.Length;i++)
- {
- str = "Content-Disposition: form-data; name=\""+requestStrings[i]+"\"\r\n\r\n";
- index = strTemp.IndexOf(str) + str.Length;
- if( index != str.Length - 1)
- {
- for(int j=index;j<strTemp.Length;j++)
- {
- if(strTemp[j] != '\r')
- this.requestValues[i] += strTemp[j];
- else
- break;
- }
- }
- }
- str = "; filename=\"";
- index = strTemp.IndexOf(str) + str.Length;
- if( index != str.Length - 1)
- {
- for(int j=index;j<strTemp.Length;j++)
- {
- if(strTemp[j] != '\r')
- this.requestValues[2] += strTemp[j];
- else
- break;
- }
- }
- string newFile = Server.MapPath(".")+"\\upload\\temp\\" + requestValues[0];
- FileStream newDoc = new FileStream(newFile,FileMode.Create,FileAccess.Write);
- BinaryWriter bw = new BinaryWriter(newDoc);
- bw.BaseStream.Seek(0,SeekOrigin.End);
- while(br.BaseStream.Position < br.BaseStream.Length - 38)
- {
- bw.Write(br.ReadByte());
- }
- br.Close();
- bw.Flush();
- bw.Close();
- }
- #region Web 窗体设计器生成的代码
- override protected void OnInit(EventArgs e) {
- //
- // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
- //
- InitializeComponent();
- base.OnInit(e);
- }
- ///
- /// 设计器支持所需的方法 - 不要使用代码编辑器修改
- /// 此方法的内容。
- ///
- private void InitializeComponent() {
- }
- #endregion
- }
- }
4,default.aspx,用来嵌入word,
- %@ page language="C#" aspcompat="true" autoeventwireup="true" CodeFile="_default.aspx.cs" inherits="_default" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" >
- <HEAD>
- <META NAME="GENERATOR" Content="LiveFlow Form Builder 3.0">
- <script language="javascript">
- function saveWord()
- {
- //debugger;
- document.all.FramerControl1.HttpInit();
- document.all.FramerControl1.HttpAddPostString("RecordID","wordName.doc");
- document.all.FramerControl1.HttpAddPostString("UserID","userName");
- document.all.FramerControl1.HttpAddPostCurrFile("FileData", "wordName.doc");
- document.all.FramerControl1.HttpPost("SaveDoc.aspx");
- }
- //进入留痕状态
- function ShowRevision(mValue)
- {
- if(mValue)
- document.all.FramerControl1.SetTrackRevisions(1);
- else
- document.all.FramerControl1.SetTrackRevisions(0);
- }
- //打开word
- function openWord()
- {
- document.all.FramerControl1.Open("wordName.doc", true);
- document.all.FramerControl1.SetCurrUserName("userName");
- //痕迹保留
- //debugger;
- ShowRevision(true);
- //设置word本身的菜单哪些可用
- document.all.FramerControl1.ShowRevisions(0);
- //设置word本身的菜单哪些可用
- document.all.FramerControl1.SetMenuDisplay(1);
- document.all.FramerControl1.SetMenuDisplay(126);
- }
- </script>
- </HEAD>
- <BODY onload="openWord();"bgcolor="lavender">
- <form id=form1 runat="server">
- <TABLE cellSpacing=0 borderColorDark=white cellPadding=0 width="100%"
- borderColorLight=black border=1>
- <TR>
- <td><input onclick="saveWord();" value="save"/> </TD>
- </TR>
- <TR>
- <TD width="100%" height="1000" vAlign=top align=middle>
- <script src="DsoFramer.js"></script></TD>
- </TR>
- </TABLE>
- </form>
- </BODY>
- </HTML>
5.ok
更多...好站/酷站
本站部份资源来于互联网,只供学习之用,不得用于商业,如有侵犯版权请联系告知,本站将第一时间删除!
站长QQ:373638128 邮箱:navy1015@126.com
copyright © 2008 .Net中文社区 ASPXCS.NET™.All Rights Reserved 滇ICP备08102132号
站长QQ:373638128 邮箱:navy1015@126.com
copyright © 2008 .Net中文社区 ASPXCS.NET™.All Rights Reserved 滇ICP备08102132号

