Web 上で、クライアントの Word コンテンツを読み込んでページに表示するには、
クライアント上で直接操作する方法と、クライアントの Word をサーバーにアップロードして操作する方法の 2 つがあることがわかりました。これら 2 つの方法にはそれぞれ長所と短所があります。
クライアントの動作例を示します。
まず、.aspx<script language='javascript'>
に次の js コードを追加します
。//デフォルトの単語変換ファイルは C:\ に配置されます。
var os__localPath = "C:\";
//保存したファイル名
var os__localFile = "defaultFileWord.htm";
var os__xmlDom = new ActiveXObject("MSXML2.DOMDocument");
var os__xmlFSO;
// 現在のクライアントにデータを保存します (保存するファイル名を渡すことができます)。
関数 os_SaveToLocal()
{
var _saveAs = "";
if(引数.長さ > 0)
_saveAs = 引数[0] + "";
それ以外
_saveAs = os__localFile;
試す
{
if(os__xmlFSO == null)
os__xmlFSO = new ActiveXObject("Scripting.FileSystemObject");
}
catch(e){window.alert(e);}
}
//WordをHTMLファイルに変換します
関数WorcChangeHtml()
{
var os_xmlFSO;
//アップロードコントロールオブジェクトを取得する
var objUpFile = window.document.Form1.updFile;
//クライアントのWordファイルのパスとファイルを取得します。
var UpFileValue = window.document.Form1.updFile.value;
if(os__xmlFSO == null)
os__xmlFSO = new ActiveXObject("Scripting.FileSystemObject");
試す
{
if(window.document.Form1.updFile.value == "")
{
alert('対応する Word ファイルを選択してください');
objUpFile.focus();
}
else if(UpFileValue.indexOf(".doc") == -1)
{
alert('選択したファイルは Word ファイルではありませんrn正しい Word ファイルを選択してください');
objUpFile.focus();
}
else if(!os__xmlFSO.FileExists(objUpFile.value))
{
alert('対応するWordファイルが存在しません');
objUpFile.focus();
}
それ以外
{
var wdFormatHTML = 8;
var objWord = new ActiveXObject("Word.Application");
objWord.Application.Visible = false;
var objDoc = objWord.Documents.Open(UpFileValue);
objDoc.SaveAs(os__localPath+os__localFile, wdFormatHTML);
window.document.Form1.updFile.value = "";
objDoc.Close();
objWord.Quit();
var GetHtml = GetLine();
var iBeginIndex = GetHtml.indexOf("<body");
var iEndIndex = GetHtml.lastIndexOf("</body>");
GetHtml = GetHtml.substring(iBeginIndex,iEndIndex+7).replace("<body","<div");
GetHtml = GetHtml.replace("</body>","</div>");
//変換された値をページ コントロール txtIdea の値に割り当てます。Word の値をデータベースに保存するには、<input type = "hidden" を使用します。Word のコンテンツを表示したい場合は、次のようにします。 window.document.Form1 を検討してください。「表示コントロール ID」.innerText = GetHtml;
window.document.Form1.txtIdea.value = GetHtml;
}
}
catch(e){window.alert(e);}
}
//テキストファイルを読み込む
関数 GetLine()
{
var fso、txtfile、strValue;
var 読み取り用 = 1、書き込み用 = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
txtfile = fso.OpenTextFile(os__localPath+os__localFile, ForReading);
while(!txtfile.AtEndOfStream)
{
strValue = strValue + txtfile.ReadLine();
}
txtfile.Close();
戻り値(strValue);
次の 2 つのコントロールと対応するクライアント イベントをページに追加する必要があることに注意して
ください
。
<input id="updFile" type="file" style="BORDER-RIGHT: 1px ソリッド; BORDER-TOP: 1px ソリッド; BORDER-LEFT: 1px ソリッド; WIDTH: 77.46%; BORDER-BOTTOM: 1px ソリッド; HEIGHT: 26ピクセル」
size="71"> <input style="BORDER-RIGHT: #999999 1px ソリッド; BORDER-TOP: #999999 1px ソリッド; FONT-SIZE: 15pt; BORDER-LEFT: #999999 1px ソリッド; WIDTH: 103px; BORDER-下部: #999999 1px 高さ: 28px"
onclick="WorcChangeHtml()" runat="server" id="btnUpLoad" type="submit" value="import" name="btnUpLoad">
<textarea style="WIDTH: 15.25%; HEIGHT: 23px" rows="50"cols="16" id="txtIdea"
runat="サーバー">
txtIdea の値はクライアント Word の内容です。 注: IE のセキュリティ設定を調整する必要があります。調整しないと無効になります。