webForumDet fria alternativet

ActiveXObject

4 svar · 417 visningar · startad av mats47

mats47Medlem sedan mars 2009185 inlägg
#1

Har fått ett script att fungera, få text in i ett word dokument

min fråga hur fskriver jag in olika tagar, fet still stor stil, tab ram mm
/n är ny rad


<script>

var w=new ActiveXObject('Word.Application'); 
var docText;
var obj;
if (w != null)
{
w.Visible = true;
w.Documents.Add();
w.Selection.TypeText("<%=text%>\n\n<%=text2%>");
w.Documents.SaveAs("g://aaa.doc");
w.Quit();

}

</script>

någon som vet något?

voigtann1Medlem sedan juni 20019 519 inlägg
#2

/t är tabb

annars är det väl bara att exemepvlis använda <span> element <strong> osv som vanligt, tror de flesta word applikationer tolkar om HTML till word-format.

JojoxxMedlem sedan juni 20004 308 inlägg
#3

Satt och testade exemplet lite och det går tydligen inte att trycka in html via TypeText. Men det går att göra det via clipboardet.

<div id="this">Här är <span style="color:green;">lite html</span>.</div>

<script type="text/javascript">
var w=new ActiveXObject('Word.Application'); 
if (w != null) {
	w.Visible = true;
	var d=w.Documents.Add();
	var div=document.getElementById("this");
	div.contentEditable="true";
	var controlRange;
	if (document.body.createControlRange) {
		controlRange = document.body.createControlRange();
		controlRange.addElement(div);
		controlRange.execCommand("Copy");
	}
	div.contentEditable="false";
	w.Selection.Paste();
	d.SaveAs("g:\\aaa.doc");
	w.Quit();
}
</script>

Tyvärr verkar addElement kräva att elementet ligger i dokumentet någonstanns, för att skapa elementet via script ( document.createElement(...) ) fungerar inte.

Lite mer att leka med i alla fall :)

The_HulkMedlem sedan juni 20031 837 inlägg
#4

document.createElement(...) returnerar väl ett objekt som du sedan kan lägg till med addElement(...)

Kommer inte ihåg exakt hur det fungerade men har för mig att det är något i den stilen.

JojoxxMedlem sedan juni 20004 308 inlägg
#5

Jo, det stämmer. Du kan till och med använda document.createElement och sedan lägga till det i dokumentet någonstanns, DÅ kan du nämligen sedan paste'a in det i word. Men om du bara skapar objektet utan att rendera det först i webbläsaren kan du det inte. Jag antar att det har med att göra att word inte tar emot html som sådan, utan snarare Rich-text som det även blir renderat som i webbläsaren (i och med att du kan kopiera från en webbsida och klistra in den formaterade texten i vilken ordbehandlare som hellst).

126 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)