Sur le Web, comment lire le contenu Word du client et l'afficher sur la page ?
J'ai trouvé qu'il existe deux méthodes, l'une consiste à opérer directement sur le client et l'autre consiste à télécharger le mot du client sur le serveur pour l'opération. Chacune de ces deux méthodes possède ses propres caractéristiques.
Je vais donner un exemple de fonctionnement du client.
Tout d'abord, ajoutez le code js suivant dans .aspx
<script language='javascript'>
//Le fichier de conversion de mots par défaut est placé sous C:\
var os__localPath = "C:\";
//nom du fichier enregistré
var os__localFile = "defaultFileWord.htm";
var os__xmlDom = new ActiveXObject("MSXML2.DOMDocument");
var os__xmlFSO;
//Enregistrer les données sur le client actuel (vous pouvez transmettre un nom de fichier à enregistrer).
fonction os_SaveToLocal()
{
var _saveAs = "";
si (arguments.longueur > 0)
_saveAs = arguments[0] + "" ;
autre
_saveAs = os__localFile ;
essayer
{
si(os__xmlFSO == nul)
os__xmlFSO = new ActiveXObject("Scripting.FileSystemObject");
}
catch(e){window.alert(e);}
}
//Convertir Word en fichier HTML
fonction WorcChangeHtml()
{
var os_xmlFSO;
//Obtenir l'objet de contrôle de téléchargement
var objUpFile = window.document.Form1.updFile;
//Obtenir le chemin et le fichier du fichier Word client
var UpFileValue = window.document.Form1.updFile.value;
si(os__xmlFSO == nul)
os__xmlFSO = new ActiveXObject("Scripting.FileSystemObject");
essayer
{
if(window.document.Form1.updFile.value == "")
{
alert('Veuillez sélectionner le fichier Word correspondant');
objUpFile.focus();
}
sinon if(UpFileValue.indexOf(".doc") == -1)
{
alert('Le fichier que vous avez sélectionné n'est pas un fichier WordrnVeuillez sélectionner le bon fichier Word');
objUpFile.focus();
}
sinon if(!os__xmlFSO.FileExists(objUpFile.value))
{
alert('Le fichier Word correspondant n'existe pas');
objUpFile.focus();
}
autre
{
var wdFormatHTML = 8 ;
var objWord = new ActiveXObject("Word.Application");
objWord.Application.Visible = faux ;
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("<corps");
var iEndIndex = GetHtml.lastIndexOf("</body>");
GetHtml = GetHtml.substring(iBeginIndex,iEndIndex+7).replace("<body","<div");
GetHtml = GetHtml.replace("</body>","</div>");
//Attribuez la valeur convertie à la valeur du contrôle de page txtIdea Afin de sauvegarder la valeur Word dans la base de données, j'utilise <input type = "hidden".... Si vous souhaitez afficher le contenu Word, vous pouvez. considérez window.document.Form1. "Votre ID de contrôle d'affichage".innerText = GetHtml;
window.document.Form1.txtIdea.value = GetHtml ;
}
}
catch(e){window.alert(e);}
}
//Lire le fichier texte
fonction GetLine()
{
var fso, fichier txt, strValue ;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
txtfile = fso.OpenTextFile(os__localPath+os__localFile, ForReading);
pendant que(!txtfile.AtEndOfStream)
{
strValue = strValue + txtfile.ReadLine();
}
txtfile.Close();
return(strValeur);
}
</script>
Notez que les 2 contrôles suivants et les événements client correspondants doivent être ajoutés à la page.
<input id="updFile" type="file" style="BORDURE DROITE : 1px solide ; BORDURE-HAUT : 1px solide ; BORDURE GAUCHE : 1px solide ; LARGEUR : 77,46 % ; BORDURE-BAS : 1px solide ; HAUTEUR : 26px"
size="71"> <input style="BORDURE-DROITE : #999999 1px solide ; BORDURE-TOP : #999999 1px solide ; TAILLE DE LA POLICE : 15 pts ; BORDURE-GAUCHE : #999999 1px solide ; LARGEUR : 103px ; BORDURE- BAS : #999999 1px solide ; HAUTEUR : 28px"
onclick="WorcChangeHtml()" runat="server" id="btnUpLoad" type="submit" value="import" name="btnUpLoad">
<textarea style="LARGEUR : 15,25 % ; HAUTEUR : 23px" rows="50" cols="16" id="txtIdea"
runat="serveur">
La valeur dans txtIdea est le contenu du client Word Remarque : vous devez ajuster les paramètres de sécurité d'IE, sinon il sera invalide.