forestasphalt
چهارشنبه 22 آبان 1392, 15:57 عصر
سلام
من یه تمپلت ورد دارم حالا میخوام اطلاعات رو با کدنویسی سی شارپ درون اون تمپلت ورد و در جاهای مشخص شده قرار بدم این کد زیر برای فیلد های متنی جواب میده ولی برای عکس نمیدونم چجوری باید انجام بدم
private void btn_ok_Click(object sender, EventArgs e)
{
Object oMissing = System.Reflection.Missing.Value;
Object oTrue = true;
Object oFalse = false;
Word.Application oWord = new Word.Application();
Word.Document oWordDoc = new Word.Document();
oWord.Visible = true;
Object oTemplatePath = System.Windows.Forms.Application.StartupPath+"\\Report.dot";
oWordDoc = oWord.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing);
foreach (Word.Field myMergeField in oWordDoc.Fields)
{
iTotalFields++;
Word.Range rngFieldCode = myMergeField.Code;
String fieldText = rngFieldCode.Text;
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 == "Name")
{
myMergeField.Select();
oWord.Selection.TypeText(txt_name.Text);
}
if (fieldName == "Address")
{
myMergeField.Select();
oWord.Selection.TypeText(txt_address.Text);
}
if (fieldName == "Age")
{
myMergeField.Select();
oWord.Selection.TypeText(num_age.Text);
}
if (fieldName == "EAddress")
{
myMergeField.Select();
oWord.Selection.TypeText(txt_email.Text);
}
if (fieldName == "Company")
{
myMergeField.Select();
oWord.Selection.TypeText(txt_company.Text);
}
if (fieldName == "TelNo")
{
myMergeField.Select();
oWord.Selection.TypeText(txt_tel.Text);
}
if (fieldName == "ODetails")
{
myMergeField.Select();
oWord.Selection.TypeText(txt_odetails.Text);
}
}
}
}
کدهایی دیدم که عکس رو اضافه میکنن ولی هر کاری نکردم نتونستم از اون ها هم به درستی استفاده کنم و اونا فقط با یه عکس کار میکردن،لطفا کسی اگه با این تمپلت کار کرده راهنمایی کمکم کنه چند وقتی هست درگیرم کرده
با تشکر از دوستان
من یه تمپلت ورد دارم حالا میخوام اطلاعات رو با کدنویسی سی شارپ درون اون تمپلت ورد و در جاهای مشخص شده قرار بدم این کد زیر برای فیلد های متنی جواب میده ولی برای عکس نمیدونم چجوری باید انجام بدم
private void btn_ok_Click(object sender, EventArgs e)
{
Object oMissing = System.Reflection.Missing.Value;
Object oTrue = true;
Object oFalse = false;
Word.Application oWord = new Word.Application();
Word.Document oWordDoc = new Word.Document();
oWord.Visible = true;
Object oTemplatePath = System.Windows.Forms.Application.StartupPath+"\\Report.dot";
oWordDoc = oWord.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing);
foreach (Word.Field myMergeField in oWordDoc.Fields)
{
iTotalFields++;
Word.Range rngFieldCode = myMergeField.Code;
String fieldText = rngFieldCode.Text;
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 == "Name")
{
myMergeField.Select();
oWord.Selection.TypeText(txt_name.Text);
}
if (fieldName == "Address")
{
myMergeField.Select();
oWord.Selection.TypeText(txt_address.Text);
}
if (fieldName == "Age")
{
myMergeField.Select();
oWord.Selection.TypeText(num_age.Text);
}
if (fieldName == "EAddress")
{
myMergeField.Select();
oWord.Selection.TypeText(txt_email.Text);
}
if (fieldName == "Company")
{
myMergeField.Select();
oWord.Selection.TypeText(txt_company.Text);
}
if (fieldName == "TelNo")
{
myMergeField.Select();
oWord.Selection.TypeText(txt_tel.Text);
}
if (fieldName == "ODetails")
{
myMergeField.Select();
oWord.Selection.TypeText(txt_odetails.Text);
}
}
}
}
کدهایی دیدم که عکس رو اضافه میکنن ولی هر کاری نکردم نتونستم از اون ها هم به درستی استفاده کنم و اونا فقط با یه عکس کار میکردن،لطفا کسی اگه با این تمپلت کار کرده راهنمایی کمکم کنه چند وقتی هست درگیرم کرده
با تشکر از دوستان