En la web, ¿cómo leer el contenido de Word del cliente y mostrarlo en la página?
Descubrí que hay dos métodos, uno es operar directamente en el cliente y el otro es cargar el Word del cliente en el servidor para su operación. Cada uno de estos dos métodos tiene sus propias características Pros y contras.
Daré un ejemplo de operación del cliente.
Primero, agregue el siguiente código js en .aspx
<script language='javascript'>
//El archivo de conversión de palabras predeterminado se coloca en C:\
var os__localPath = "C:\";
//nombre del archivo guardado
var os__localFile = "defaultFileWord.htm";
var os__xmlDom = nuevo ActiveXObject("MSXML2.DOMDocument");
var os__xmlFSO;
//Guardar datos en el cliente actual (puede pasar un nombre de archivo para guardar).
función os_SaveToLocal()
{
var _saveAs = "";
si(argumentos.longitud > 0)
_saveAs = argumentos[0] + "";
demás
_saveAs = os__localFile;
intentar
{
si(os__xmlFSO == nulo)
os__xmlFSO = nuevo ActiveXObject("Scripting.FileSystemObject");
}
captura(e){ventana.alert(e);}
}
//Convierte Word a un archivo HTML
función WorcChangeHtml()
{
var os_xmlFSO;
//Obtener el objeto de control de carga
var objUpFile = ventana.document.Form1.updFile;
//Obtener la ruta y el archivo del archivo de Word del cliente
var UpFileValue = ventana.document.Form1.updFile.value;
si(os__xmlFSO == nulo)
os__xmlFSO = nuevo ActiveXObject("Scripting.FileSystemObject");
intentar
{
if(ventana.document.Form1.updFile.value == "")
{
alert('Seleccione el archivo de Word correspondiente');
objUpFile.focus();
}
de lo contrario si(UpFileValue.indexOf(".doc") == -1)
{
alert('El archivo que seleccionó no es un archivo de WordrnSeleccione el archivo de Word correcto');
objUpFile.focus();
}
else if(!os__xmlFSO.FileExists(objUpFile.value))
{
alert('El archivo de Word correspondiente no existe');
objUpFile.focus();
}
demás
{
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);
ventana.document.Form1.updFile.value = "";
objDoc.Close();
objWord.Quit();
var GetHtml = GetLine();
var iBeginIndex = GetHtml.indexOf("<cuerpo");
var iEndIndex = GetHtml.lastIndexOf("</body>");
GetHtml = GetHtml.substring(iBeginIndex,iEndIndex+7).replace("<cuerpo","<div");
GetHtml = GetHtml.replace("</body>","</div>");
//Asigne el valor convertido al valor del control de página txtIdea. Para guardar el valor de Word en la base de datos, uso <input type = "hidden".... Si desea mostrar el contenido de Word, puede hacerlo. considere window.document.Form1 "Su ID de control de visualización".innerText = GetHtml;
window.document.Form1.txtIdea.value = GetHtml;
}
}
captura(e){ventana.alert(e);}
}
//Leer archivo de texto
función ObtenerLínea()
{
var fso, archivo txt, strValue;
var Para lectura = 1, Para escritura = 2;
fso = nuevo ActiveXObject("Scripting.FileSystemObject");
txtfile = fso.OpenTextFile(os__localPath+os__localFile, ForReading);
mientras(!txtfile.AtEndOfStream)
{
strValue = strValue + txtfile.ReadLine();
}
txtfile.Close();
retorno(strValue);
}
</script>
Tenga en cuenta que los siguientes 2 controles y los eventos de cliente correspondientes deben agregarse a la página.
<input id="updFile" type="file" style="BORDE DERECHO: 1 px sólido; BORDE SUPERIOR: 1 px sólido; BORDE IZQUIERDO: 1 px sólido; ANCHO: 77,46%; BORDE INFERIOR: 1 px sólido; ALTO: 26px"
size="71"> <input style="BORDE-DERECHO: #999999 1px sólido; BORDE SUPERIOR: #999999 1px sólido; TAMAÑO DE FUENTE: 15pt; BORDE-IZQUIERDO: #999999 1px sólido; ANCHO: 103px; BORDE- ABAJO: #999999 1px sólido; ALTO: 28px"
onclick="WorcChangeHtml()" runat="servidor" id="btnUpLoad" tipo="enviar" valor="importar" nombre="btnUpLoad">
<textarea style="ANCHO: 15,25%; ALTO: 23px" rows="50" cols="16" id="txtIdea"
runat="servidor">
El valor en txtIdea es el contenido del cliente Word. Nota: debe ajustar la configuración de seguridad de IE; de lo contrario, no será válido.