asp.net 读取Word

本例下载:https://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(","");

GetHtml = GetHtml.replace(","");

GetHtml = GetHtml.replace("","");

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 runat="server">

<input 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" type="submit"

value="导入" name="btnUpLoad">

<textarea 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();

}

其它说明:

我原本想后台读取word后,在页面的某一页面中显示,但没找到方法。如果有谁知道,烦请告知我。