Dave. Birincisi MailMerge kullanıyor ve ikincisi yer imlerini kullanıyor.
word dosyası şuna benzer:
MailMerge kullanma
(Insert -> Hızlı Parçalar -> Tarla -> Posta birleştirme -> Birleştirme alanı) Adı: «firstName» Soyadı: «velastName»
=======
kullanma imleri (Ekle -> BookMark) adı: - soyadı (< imi değil görünür durumda, burada):
Ve kod takip ediyor:
kullanma imleri
MailMerge
Open("D:/Doc1.doc");
foreach (Field myMergeField in oDoc.Fields)
{
//iTotalFields++;
Range rngFieldCode = myMergeField.Code;
String fieldText = rngFieldCode.Text;
// GET only MAILMERGE fields
if (fieldText.StartsWith(" MERGEFIELD"))
{
Int32 endMerge = fieldText.IndexOf("\\");
Int32 fieldNameLength = fieldText.Length - endMerge;
String fieldName = fieldText.Substring(11, endMerge - 11);
fieldName = fieldName.Trim();
if (fieldName == "firstName")
{
myMergeField.Select();
oWordApplic.Selection.TypeText("This Text Replaces the Field in the Template");
}
}
}
SaveAs("D:/Test/Doc2.doc"); Quit();
MessageBox.Show("The file is successfully saved!");
kullanma
Open("D:/Doc1.doc");
if (oDoc.Bookmarks.Exists("bkmFirstName"))
{
object oBookMark = "bkmFirstName";
oDoc.Bookmarks.get_Item(ref oBookMark).Range.Text = textBox1.Text;
}
if (oDoc.Bookmarks.Exists("bkmLastName"))
{
object oBookMark = "bkmLastName";
oDoc.Bookmarks.get_Item(ref oBookMark).Range.Text = textBox2.Text;
}
SaveAs("D:/Test/Doc2.doc"); Quit();
MessageBox.Show("The file is successfully saved!");
Ayrıca bazı yardımcı yöntemler kullandım.
ApplicationClass oWordApplic = new Microsoft.Office.Interop.Word.ApplicationClass();
private Microsoft.Office.Interop.Word.Document oDoc = new Document();
public void Open(string strFileName)
{
object fileName = strFileName;
object readOnly = false;
object isVisible = true;
object missing = System.Reflection.Missing.Value;
oDoc = oWordApplic.Documents.Open(ref fileName, ref missing, ref readOnly,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing);
oDoc.Activate();
}
public void SaveAs(string strFileName)
{
object missing = System.Reflection.Missing.Value;
object fileName = strFileName;
oDoc.SaveAs(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);
}
public void Quit()
{
object missing = System.Reflection.Missing.Value;
oWordApplic.Application.Quit(ref missing, ref missing, ref missing);
}
Bu uygulamanın sorununuzu çözmek için bazı fikirler vermesini umuyorum.
Bu harika! Beni çok kurtardın ve şu an iyi bir başlangıç yapacağım. Bunu, diğer herhangi bir taşma makinesinin de kullanabilmesi için soyutlamayı ve biçimlendirmeyi deniyorum. Şerefe ve teşekkürler; Dave – Daver