本例下载:http://files.cnblogs.com/scottckt/ReadWord.rar
方法1:使用Js读取。代码:
<%@ Page Language=
"
C#
" AutoEventWireup=
"
true
" CodeFile=
"
js读取word.aspx.cs
" Inherits=
"
js读取word
" %>
<! 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 runat ="server" >
< script language ='javascript' >
// 默认word转化文件放于C:\\下
var os__localPath = "C:\\";
// 保存的文件名
var os__localFile = "defaultFileWord.htm";
var os__xmlDom = new ActiveXObject("MSXML2.DOMDocument");
var os__xmlFSO ;
// 保存数据到当前客户端(可以传入一个要保存的文件名).
function os_SaveToLocal()
{
var _saveAs = "";
if(arguments.length > 0)
_saveAs = arguments[0] + "";
else
_saveAs = os__localFile;
try
{
if(os__xmlFSO == null)
os__xmlFSO = new ActiveXObject("Scripting.FileSystemObject");
}
catch(e){window.alert(e);}
}
// Word转化为Html文件
function WorcChangeHtml()
{
var os_xmlFSO;
// 获得上传控件对象
var objUpFile = document.getElementById("updFile");
// 获得客户端Word文件路径和文件
var UpFileValue = objUpFile.value;
if(os__xmlFSO == null)
os__xmlFSO = new ActiveXObject("Scripting.FileSystemObject");
try
{
if(UpFileValue == "")
{
alert('请选择对应的Word文件');
objUpFile.focus();
}
else if(UpFileValue.indexOf(".doc") == -1)
{
alert('您选择的不是Word文件 \r\n请选择正确的Word文件');
objUpFile.focus();
}
else if(!os__xmlFSO.FileExists(objUpFile.value))
{
alert('对应的Word文件不存在');
objUpFile.focus();
}
else
{
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);
UpFileValue = "";
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>");
GetHtml = GetHtml.replace("lang=ZH-CN","");
GetHtml = GetHtml.replace("lang=EN-US","");
GetHtml = GetHtml.replace("style='mso-spacerun:yes'","");
GetHtml = GetHtml.replace("class=MsoNormal","");
var vTxtIdea= document.getElementById("txtIdea");
document.write(GetHtml)
}
}
catch(e)
{
window.alert(e);
}
}
// 读取文本文件
function GetLine()
{
var fso, txtfile, strValue;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
txtfile = fso.OpenTextFile(os__localPath+os__localFile, ForReading);
while(!txtfile.AtEndOfStream)
{
strValue = strValue + txtfile.ReadLine();
}
txtfile.Close();
return(strValue);
}
</ script >
< title >无标题页 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< input id ="updFile" type ="file" style ="border-right: 1px solid; border-top: 1px solid;
border-left: 1px solid; width: 77.46%; border-bottom: 1px solid; height: 26px"
size ="71" >
< input style ="border-right: #999999 1px solid; border-top: #999999 1px solid; font-size: 15pt;
border-left: #999999 1px solid; width: 103px; border-bottom: #999999 1px solid;
height: 28px" onclick ="WorcChangeHtml()" runat ="server" id ="btnUpLoad" type ="submit"
value ="导入" name ="btnUpLoad" >
< textarea style ="width: 88%; height: 412px" id ="txtIdea" runat ="server" ></ textarea >
< br />
< br />
</ form >
</ body >
</ html >
<! 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 runat ="server" >
< script language ='javascript' >
// 默认word转化文件放于C:\\下
var os__localPath = "C:\\";
// 保存的文件名
var os__localFile = "defaultFileWord.htm";
var os__xmlDom = new ActiveXObject("MSXML2.DOMDocument");
var os__xmlFSO ;
// 保存数据到当前客户端(可以传入一个要保存的文件名).
function os_SaveToLocal()
{
var _saveAs = "";
if(arguments.length > 0)
_saveAs = arguments[0] + "";
else
_saveAs = os__localFile;
try
{
if(os__xmlFSO == null)
os__xmlFSO = new ActiveXObject("Scripting.FileSystemObject");
}
catch(e){window.alert(e);}
}
// Word转化为Html文件
function WorcChangeHtml()
{
var os_xmlFSO;
// 获得上传控件对象
var objUpFile = document.getElementById("updFile");
// 获得客户端Word文件路径和文件
var UpFileValue = objUpFile.value;
if(os__xmlFSO == null)
os__xmlFSO = new ActiveXObject("Scripting.FileSystemObject");
try
{
if(UpFileValue == "")
{
alert('请选择对应的Word文件');
objUpFile.focus();
}
else if(UpFileValue.indexOf(".doc") == -1)
{
alert('您选择的不是Word文件 \r\n请选择正确的Word文件');
objUpFile.focus();
}
else if(!os__xmlFSO.FileExists(objUpFile.value))
{
alert('对应的Word文件不存在');
objUpFile.focus();
}
else
{
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);
UpFileValue = "";
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>");
GetHtml = GetHtml.replace("lang=ZH-CN","");
GetHtml = GetHtml.replace("lang=EN-US","");
GetHtml = GetHtml.replace("style='mso-spacerun:yes'","");
GetHtml = GetHtml.replace("class=MsoNormal","");
var vTxtIdea= document.getElementById("txtIdea");
document.write(GetHtml)
}
}
catch(e)
{
window.alert(e);
}
}
// 读取文本文件
function GetLine()
{
var fso, txtfile, strValue;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
txtfile = fso.OpenTextFile(os__localPath+os__localFile, ForReading);
while(!txtfile.AtEndOfStream)
{
strValue = strValue + txtfile.ReadLine();
}
txtfile.Close();
return(strValue);
}
</ script >
< title >无标题页 </ title >
</ head >
< body >
< form id ="form1" runat ="server" >
< input id ="updFile" type ="file" style ="border-right: 1px solid; border-top: 1px solid;
border-left: 1px solid; width: 77.46%; border-bottom: 1px solid; height: 26px"
size ="71" >
< input style ="border-right: #999999 1px solid; border-top: #999999 1px solid; font-size: 15pt;
border-left: #999999 1px solid; width: 103px; border-bottom: #999999 1px solid;
height: 28px" onclick ="WorcChangeHtml()" runat ="server" id ="btnUpLoad" type ="submit"
value ="导入" name ="btnUpLoad" >
< textarea style ="width: 88%; height: 412px" id ="txtIdea" runat ="server" ></ textarea >
< br />
< br />
</ form >
</ body >
</ html >
方法2,将Word文件上传到服务器端后,在读取。
private
void ReadWord()
{
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = " Application/msword ";
string s = Server.MapPath( " test.doc ");
Response.WriteFile( " test.doc ");
Response.Write(s);
Response.Flush();
Response.Close();
}
private void ReadWord2()
{
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = " Application/msword ";
string strFilePath = "";
strFilePath = Server.MapPath( " test.doc ");
FileStream fs = new FileStream(strFilePath, FileMode.Open, FileAccess.Read,FileShare.Read);
Response.WriteFile(strFilePath, 0, fs.Length);
fs.Close();
}
private void ReadWord3()
{
string path = Server.MapPath( " test.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=文件名.doc ");
Response.Flush();
Response.BinaryWrite(filedata);
Response.End();
}
{
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = " Application/msword ";
string s = Server.MapPath( " test.doc ");
Response.WriteFile( " test.doc ");
Response.Write(s);
Response.Flush();
Response.Close();
}
private void ReadWord2()
{
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = " Application/msword ";
string strFilePath = "";
strFilePath = Server.MapPath( " test.doc ");
FileStream fs = new FileStream(strFilePath, FileMode.Open, FileAccess.Read,FileShare.Read);
Response.WriteFile(strFilePath, 0, fs.Length);
fs.Close();
}
private void ReadWord3()
{
string path = Server.MapPath( " test.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=文件名.doc ");
Response.Flush();
Response.BinaryWrite(filedata);
Response.End();
}
其它说明:
我原本想后台读取word后,在页面的某一页面中显示,但没找到方法。如果有谁知道,烦请告知我。
http://www.cnblogs.com/scottckt/archive/2009/06/24/1510253.html