MicroHard |
02.07.2011. 12:57 |
C# - Pisanje u word - izmjena parametara sa tekstom u wordu
Imam problem,
u wordu imam zapisane parametre npr. [Ime], [Prezime], [Tekst]...sa c# (aplikacijom), otvaram taj file te trazim odnosno radim replace [Ime] sa varijablom imena, [Prezime] sa varijablom prezimena...sve to radi dok ne dodem do [Tekst]. Ukoliko varijabla Tekst iznosi vise od 255 charaktera, baca mi exception string is to long. Kako je to najednostavnije izbijec? Vise neznam kaj da napravim. U prilogu je dio koda na koji nacin to radim. Hvala svakome na pomoci.
Code:
Word.Application word = new Word.Application();
Word.Document doc = new Word.Document();
object missing = System.Type.Missing;
try
{
object fileName = @PutanjaGenerickihDatoteka + ImeFilea;
doc = word.Documents.Open(ref fileName,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing);
doc.Activate();
string[] test= { Ime, Prezime, Tekst};
string[] parametri = { "[Ime]", "[Prezime]", "[Tekst]"};
// Provjeravaj svaki parametar
foreach (string Parametri in parametri)
{
foreach (Word.Range tmpRange in doc.StoryRanges)
{
tmpRange.Find.Text = Parametri;
tmpRange.Find.Replacement.Text = test[i];
tmpRange.Find.Text = test[i];
i++;
tmpRange.Find.Wrap = Word.WdFindWrap.wdFindContinue;
object replaceAll = Word.WdReplace.wdReplaceAll;
tmpRange.Find.Execute(ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref replaceAll,
ref missing, ref missing, ref missing, ref missing);
}
}
doc.SaveAs(@PutanjaObrazac + @GenerirajDatoteku() + FileCounter() + " - " +ImeFilea);
doc.Close(ref missing, ref missing, ref missing);
word.Application.Quit(ref missing, ref missing, ref missing);
}
catch (Exception ex)
{
doc.Close(ref missing, ref missing, ref missing);
word.Application.Quit(ref missing, ref missing, ref missing);
MessageBox.Show(ex.ToString());
}
exception mi baca na sljedecem dijelu koda: tmpRange.Find.Replacement.Text = test[i];
Hvala
|