Na web, como ler o conteúdo do Word do cliente e exibi-lo na página,
descobri que existem dois métodos, um é operar diretamente no cliente e o outro é fazer upload da palavra do cliente para o servidor para operação. Cada um desses dois métodos tem suas próprias características.
Darei um exemplo de operação do cliente.
Primeiro, adicione o seguinte código js em .aspx
<script language='javascript'>
//O arquivo de conversão de palavras padrão é colocado em C:\
var os__localPath = "C:\";
//nome do arquivo salvo
var os__localFile = "defaultFileWord.htm";
var os__xmlDom = new ActiveXObject("MSXML2.DOMDocument");
var os__xmlFSO;
//Salva os dados no cliente atual (você pode passar um nome de arquivo a ser salvo).
função os_SaveToLocal()
{
var _saveAs = "";
if(argumentos.comprimento > 0)
_saveAs = argumentos[0] + "";
outro
_saveAs = os__localFile;
tentar
{
if(os__xmlFSO == nulo)
os__xmlFSO = novo ActiveXObject("Scripting.FileSystemObject");
}
pegar(e){janela.alert(e);}
}
//Converte arquivo Word em HTML
função WorcChangeHtml()
{
var os_xmlFSO;
//Obtém o objeto de controle de upload
var objUpFile = window.document.Form1.updFile;
//Obtém o caminho e o arquivo do arquivo Word do cliente
var UpFileValue = window.document.Form1.updFile.value;
if(os__xmlFSO == nulo)
os__xmlFSO = novo ActiveXObject("Scripting.FileSystemObject");
tentar
{
if(window.document.Form1.updFile.value == "")
{
alert('Selecione o arquivo Word correspondente');
objUpFile.focus();
}
senão if(UpFileValue.indexOf(".doc") == -1)
{
alert('O arquivo que você selecionou não é um arquivo WordrnPor favor selecione o arquivo Word correto');
objUpFile.focus();
}
senão if(!os__xmlFSO.FileExists(objUpFile.value))
{
alert('O arquivo Word correspondente não existe');
objUpFile.focus();
}
outro
{
var wdFormatHTML = 8;
var objWord = new ActiveXObject("Word.Application");
objWord.Application.Visible = falso;
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("<corpo");
var iEndIndex = GetHtml.lastIndexOf("</body>");
GetHtml = GetHtml.substring(iBeginIndex,iEndIndex+7).replace("<corpo","<div");
GetHtml = GetHtml.replace("</body>","</div>");
//Atribuir o valor convertido ao valor do controle de página txtIdea. Para salvar o valor do Word no banco de dados, eu uso <input type = "hidden".... Se quiser exibir o conteúdo do Word, você pode considere window.document.Form1. "Seu ID de controle de exibição".innerText = GetHtml;
window.document.Form1.txtIdea.value = GetHtml;
}
}
pegar(e){janela.alert(e);}
}
//Lê o arquivo texto
função GetLinha()
{
var fso, txtfile, strValue;
var ForReading = 1, ForWriting = 2;
fso = novo ActiveXObject("Scripting.FileSystemObject");
txtfile = fso.OpenTextFile(os__localPath+os__localFile, ForReading);
enquanto(!txtfile.AtEndOfStream)
{
strValue = strValue + txtfile.ReadLine();
}
txtfile.Close();
return(strValor);
}
</script>
Observe que os dois controles a seguir e os eventos de cliente correspondentes precisam ser adicionados à página.
<input id="updFile" type="file" style="BORDER-RIGHT: 1px sólido; BORDER-TOP: 1px sólido; BORDER-LEFT: 1px sólido; LARGURA: 77,46%; BORDER-BOTTOM: 1px sólido; ALTURA: 26 pixels"
size="71"> <input style="BORDER-RIGHT: #999999 1px sólido; BORDER-TOP: #999999 1px sólido; FONT-SIZE: 15pt; BORDER-LEFT: #999999 1px sólido; WIDTH: 103px; BORDER- INFERIOR: #999999 1px sólido; ALTURA: 28px"
onclick="WorcChangeHtml()" runat="server" id="btnUpLoad" type="submit" value="import" name="btnUpLoad">
<textarea style="LARGURA: 15,25%; ALTURA: 23px" rows="50" cols="16" id="txtIdea"
runat="servidor">
O valor em txtIdea é o conteúdo do cliente Word. Nota: Você precisa ajustar as configurações de segurança do IE, caso contrário será inválido.