文章簡介:dsoframer是微軟提供一款開源的用于在線編輯、調用Word、 Excel 、PowerPoint等的ActiveX控件。國內很多著名的OA中間件,電子印章,簽名留痕等大多數(shù)是依此改進而來的。 |
一、先注冊一下DSOFramer.ocx
操作:將.ocx復制到C:\windows\system32目錄下,
開始->運行->regsvr32 DSOFramer.ocx , 系統(tǒng)會提示DSOFramer.ocx中的DllRegisterServer成功。
二、添加DSOFramer.ocx到你的項目中
操作:先說明一下,我用VS 2005 ,其他VS版本可能操作會有不同,操作應該也類似自己試試,問題應該不大。
在你要訪問DSOFramer.ocx的目錄上點選右鍵菜單中的“添加現(xiàn)有項”,找到DSOFramer.ocx,確定。
三、在網頁中加載DSOFramer
新建Office.aspx
添加如下代碼:
<object id="MyOffice" name = "MyOffice" style="LEFT: 0px; WIDTH: 100%; TOP: 0px; HEIGHT: 100%"
classid="clsid:00460182-9E5E-11D5-B7C8-B8269041DD57" codebase="dsoframer.ocx#version=2,2,0,0" >
</object>
[注]:VS 2005對語法的要求賊多,什么ID的值要用""括起來啦,<object>不能大寫啦,……
沒什么大礙,但是很煩人,簡直就是微軟版的唐僧,我給大家提供的代碼是修改過的,VS不會有哪些廢話了。
然后再body中加入onload事件的處理函數(shù)
<body onload="show_word();">
再在<head></head>中間加入函數(shù)體
<script language="javascript" type="text/javascript">
<!--
function show_word() {
var str=window.location.search;
var pos_start=str.indexOf("id")+3;
if (pos_start == 2)
return ;
var id = "http://localhost/Getdc.aspx?id=" + str.substring(pos_start);
document.all. MyOffice.Open( id,false, "Word.Document");
}
// -->
</script>
四、編制Getdc.aspx.cs文件
建立Getdc.aspx文件,VS會同時建立與之關聯(lián)的Getdc.aspx.cs文件
先加入命名空間
using System.Data.SqlClient;
using System.Data.SqlTypes;
編輯Getdc.aspx.cs的Page_Load函數(shù);
protected void Page_Load(object sender, EventArgs e)
{
int pid = Convert.ToInt32(Request["id"]);
SqlConnection myConnection = new SqlConnection("Data Source=\"localhost\";Initial Catalog=\"demo\";Persist Security Info=True;User ID=demo;Password=demo");//數(shù)據(jù)庫的相關設置自己改吧,我就不廢話了
SqlCommand mycommand = myConnection.CreateCommand();
myConnection.Open();
mycommand.CommandText = "SELECT filedata " +
" FROM Table_word WHERE (ID = " + pid.ToString() + ") ";//其中filedata的數(shù)據(jù)庫類型是varbinary(MAX)
SqlDataReader myReader = mycommand.ExecuteReader();
myReader.Read();
SqlBinary binaryStream = myReader.GetSqlBinary(0);
myReader.Close();
myConnection.Close();