asp.net怎样操作word
通过SOAOffice客户端控件上传word文档,在页面里添加隐藏域在页面的js保存按钮事件里添脚本document.getElementById("pgCount").value = SOAOfficeCtrl.Document.BuiltInDocumentProperties(14).Value;在保存页面SaveDoc.aspx里调用iPageCount = int32.Parse(SaveObj.RequestFormField("pgCount"));iPageCount就是你要的上传的文档的页数
ASP.net怎么实现在线阅读word pdf文件
网上方法不少,可以尝试搜索一下。
第一种方法:Response.ClearContent();Response.ClearHeaders();Response.ContentType = "Application/msword";string s=Server.MapPath("E:/wendang/wo582.doc");Response.WriteFile("E:/wendang/wo582.doc");Response.Write(s);Response.Flush();Response.Close();第二种方法:Response.ClearContent();Response.ClearHeaders();Response.ContentType = "Application/msword"; string strFilePath=""; strFilePath =Server.MapPath("E:/wendang/wo582.doc"); FileStream fs = new FileStream(strFilePath,FileMode.OpenOrCreate,FileAccess.Read);Response.WriteFile(strFilePath,0,fs.Length);fs.Close(); 第三种方法:string path=Server.MapPath("E:/wendang/wo582.doc");FileInfo file=new FileInfo(path);FileStream myfileStream=new FileStream(path,FileMode.Open,FileAccess.Read);byte[] filedata=new Byte[file.Length];myfileStream.Read(filedata,0,(int)(file.Length));myfileStream.Close();Response.Clear();Response.ContentType="application/msword";Response.AddHeader("Content-Disposition","attachment;filename=wo582.doc");Response.Flush();Response.BinaryWrite(filedata);Response.End();
asp.net导出word
public void Download(){Random rd = new Random();string fileName = DateTime.Now.ToString("yyyyMMddhhmm") + rd.Next() + ".doc";//存储路径string path = Server.MapPath(fileName);//创建字符输出流StreamWriter sw = new StreamWriter(path, true, System.Text.UnicodeEncoding.UTF8);//需要导出的内容string str = "无标题文档这里放从数据库导出的word文档内容";//写入sw.Write(str);sw.Close();Response.Clear();Response.Buffer = true;this.EnableViewState = false;Response.Charset = "utf-8";Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));Response.ContentType = "application/octet-stream";Response.WriteFile(path);Response.Flush();Response.Close();Response.End();}标准word文档的格式微软暂未公布,由此我们可将需要导出的内容转为标准HTML文件储存,后缀名为.doc也可以将要导出内容转为标准XML格式存储,改后缀为.doc具体格式随意新建个word文档,输入内容,另存为.XML可见另外一种导出方式为word导出标准格式,服务器需要安装Microsoft Office word,需要预先设置好一个word文档并在要插入内容的地方设置书签做为模版,导出word文档时需要先遍历模版文件中的所有书签,然后给书签赋值就能实现导出数据了还有不懂的可以直接百度HI我是否可以解决您的问题?
Asp.net 在客户端打开一个服务器上的Word文档,然后写入数据 如何...
第一种方法:在后台添加Word的类型库引用,自动化调用Word。
缺点是:你要了解Word的VBA接口,对象层次,调用方法,还要给asp.net添加模拟交互账户,还要处理word死进程问题等等。
微软明确指出不建议在服务器端自动化Office,参考http://support.microsoft.com/default.aspx?scid=kb;zh-cn;Q257757 第二种方法:采用SOAOffice中间件。
SOAOffice是微软OFFICE的专业Web中间件。
服务器端不需要安装运行Office软件,SOAOffice 完全克服了传统利用Office服务器端自动化技术存取文档数据的种种弊端和缺陷。
SOAOffice还能在浏览器里提供完全Office功能的在线编辑功能。
--------------------------------------------------------------------------- 采用第二种方法,以SOAOffice中间件作为平台,编写简单的调用代码实现本文的用户需求。
实现方法: 假设用户UserA只能编辑公文test.doc中的a区域,用户UserB只能编辑test.doc中的b区域。
首先打开test.doc文档,选择a区域,添加书签,命名为SOA_a;选择b区域,添加书签,命名为SOA_b。
为避免和用户其他书签名称冲突,在SOAOffice里数据区域名称都是以SOA_为前缀的书签名称。
保存test.doc。
新建EditWord.aspx页面,在Page_Load里编写代码: private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(Session["UserName"]==null) Response.Redirect("Index.aspx"); string strUserName = Session["UserName"].ToString(); string strDataRegion = "a"; //----------- SOAOFFICE 服务器端编程开始 -------------------// // 首先确保引用SOAOFFICE中间件的服务器端.NET组件SOAOfficeX // SOAOfficeX.dll 在本示例代码的 bin 文件夹下 SOAOfficeX.WordResponse SOAWord = new SOAOfficeX.WordResponse(); SOAWord.FormMode = true; SOAWord.DisableWindowRightClick = true;//禁止Word右键菜单 if(strUserName == "UserA") strDataRegion = "a"; else if(strUserName == "UserB") strDataRegion = "b"; SOAOfficeX.IWordResDataRegion dataRegion = SOAWord.OpenDataRegion(strDataRegion); dataRegion.NeedSubmit = true; SOAOfficeX.SOAOfficeCtrl SOACtrl = new SOAOfficeX.SOAOfficeCtrl(); // 设置连接SOAOFFICE中间件服务器端SOAServer的参数 SOACtrl.Server = Request.ServerVariables["HTTP_HOST"]; SOACtrl.ServerPort = "4357"; // 设置界面样式 SOACtrl.MainStyle = SOAOfficeX.soaMainStyle.VistaBlue; SOACtrl.Caption = "填写文档内容,并提交填写的内容到服务器数据库。
"; SOACtrl.BorderStyle = SOAOfficeX.soaBorderStyle.BorderNone; SOACtrl.Toolbars = false; SOACtrl.Menubar = false; // 设置保存文档的服务器页面 SOACtrl.SaveDataURL = "SaveData.aspx"; // 获取数据对象 SOACtrl.Assign(SOAWord); // 打开文档 SOACtrl.WebOpen("doc/test.doc", SOAOfficeX.soaWorkMode.docReadOnly, strUserName, "Word.Document"); //----------- SOAOFFICE 服务器端编程结束 -------------------// } 其中关键代码是: if(strUserName == "UserA") strDataRegion = "a"; else if(strUserName == "UserB") strDataRegion = "b"; SOAOfficeX.IWordResDataRegion dataRegion = SOAWord.OpenDataRegion(strDataRegion); dataRegion.NeedSubmit = true; 判断当前登录用户,OpenDataRegion指定当前可编辑提交的文本区域。
创建SaveData.aspx页面,用来保存用户的输入内容,保存到数据库。
在Page_Load里编写代码:{ // 在此处放置用户代码以初始化页面 //----------- SOAOFFICE 服务器端编程开始 -------------------// SOAOfficeX.WordRequest SOAWord = new SOAOfficeX.WordRequest(); if(Session["UserName"]==null) { Label1.Text = "保存失败!登录用户无效。
"; SOAWord.ShowPage(580,270); return; } string strUserName = Session["UserName"].ToString(); string strDataRegion = "a"; if(strUserName == "UserA") strDataRegion = "a"; else if(strUserName == "UserB") strDataRegion = "b"; Label1.Text = "当前登录用户是:" +strUserName+ ""; if(SOAWord.OpenDataRegion(strDataRegion).value=="") { Label1.Text = Label1.Text + "请填写工作进度。
"; SOAWord.ShowPage(580,270); return; } Label1.Text = Label1.Text + "保存成功!"; Label1.Text = Label1.Text + "保存内容如下:" + SOAWord.OpenDataRegion(strDataRegion).value; SOAWord.ShowPage(580,270); SOAWord.ReturnOK();//此句是必须的,向SOAOffice客户端控件返回保存成功消息。
//----------- SOAOFFICE 服务器端编程结束 -------------------// } 其中关键代码是:if(strUserName == "UserA") strDataRegion = "a"; else if(strUserName == "UserB") strDataRegion = "b"; Label1.Text = Label1.Text + "保存内容如下:" + SOAWord.OpenDataRegion(strDataRegion).value; 判断当前登录用户,OpenDataRegion获取当前提交的文本区域内容。
这里并没...
转载请注明出处51数据库 » asp.net 在线word文档编辑