PDA

View Full Version : سوال: تغيير بعضي از قسمتهاي يه فايل Word...؟



Afshin160
چهارشنبه 22 آبان 1387, 09:09 صبح
با سلام به تمام دوستان برنامه نويس ...

يه سوال : من يه فايل word دارم كه از قبل تهيه شده با مضمون يه قرارداد كه نامها و آدرسها و شماره حسابها و... بايد تغيير كنه حال من مي خواهم اين قرارداد كه متني ثابت دارد را تغيير دهم ...
دوست خوبي دارم كه راهنمايي كردن كه من جاهايي را كه ميخواهم تغيير دهم را در يه علامت خاص قراربدهم مثلا" *نام* و بعد از دستور زير استفاده كنم


Mytext = replace(mytext,"*نام*",name_field)

حال سوال من اين است كه من به چه صورت اين فايل را باز كنم و به چه صورت و كجا از اين دستور استفاده كنم و اصلا" منظور از mytext چيست ...؟

با تشكر از تمام دوستان و آرزوي موفقيت

افشين160

SMRAH1
جمعه 24 آبان 1387, 17:05 عصر
سلام

دوست من،من هم قبلا از همین روش (جانشین کردن متن دلخواه به جای متن خاص جاری)برای پرکردن سند های word استفاده می کردم،ولی توی یکی از تاپیک های همین سایت (حداکثر 1 ماه قبل) تاپیکی در این مورد ایجاد شد و با راهنمایی های اونجا دیدم استفاده از Bookmark بهتره.

در ضمن برای جانشینی bookmark،می تونی عنوان How to: Update Bookmark Text رو توی MSDN بخونی.در این صفحه لینکهای دیگه ای هم برای کار با سند word هست.

موفق باشی

Afshin160
شنبه 25 آبان 1387, 08:55 صبح
سلام ... آقا متشكرم از راهنماييتون

اگه لطف كنيد يه مثال كوچك هم بگذاريد ممنون ميشم ...

s_ahmadneya
شنبه 25 آبان 1387, 23:38 عصر
سلام
برای نوشتن در یک جای خاص از فایل ورد ابتدا باید انرا باز کنید
سپس باید با متد rang یک کلمه را در یک جا بنویسید ویا حتی با کلمات دیگه جابجا نماید . کدش در این سایت است . با نام word
بگرد پیدا می کنی اما خلاصه اش بصورت زیر است من تست کردم کار می کنه.


Word_App = new Microsoft.Office.Interop.Word.Application();
Word_doc = new Microsoft.Office.Interop.Word.Document();

////
Word_doc = Word_App.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);

Range range = Word_doc.Range(ref missing, ref missing);

range.Text= range.Text.Replace("smail" ,"ahmadneya");



MessageBox.Show(range.Text.ToString());

s_ahmadneya
چهارشنبه 29 آبان 1387, 10:06 صبح
برای گذاشتن عکس در جای خالی از داکیومنت ورد چند را وجود دارد
1- وقتی عکس بصورت فایل داریم
در این حالت دستور زیر را صادر می نماییم تذکر عکس جایی که مکان نما است قرار می گیرد . تغیر مکان نما هم با دستور range است در تاپیک بالا توضیح داده شده

Word_App = Word_doc.Application;
Word_App.Selection.InlineShapes.AddPicture(PathIma ge,
ref missing, ref missing, ref missing);
2- عکس را کلیبورد ویندوز داریم مثلا اسکن کرده ایم ویا ctrl+c ر ا فشار داده ایم در این صورت دستور زیر را صادر می نماییم. عکس دقیقا جایی که range اشاره می کند قرار می گیرد


public string InsertClibordValue()
{
3- در مواقعی که عکس را بصورت object در برنامه داریم در این صورت راه حل ساده کپی در کلیبورد واستفاده از تکنیک دوم است اما باید راه حل بهتر هم باشد من کار نکرده ام اما اگه کدش را بدست اوری برای ما هم بگذار .با تشکر


Range range = Word_doc.Range(ref missing, ref missing);
Word_doc.Range(ref missing, ref missing).Paste();
//range.Paste();
//range.Paste();
//Word_doc.Range(
return "1";


}

s_ahmadneya
چهارشنبه 29 آبان 1387, 10:22 صبح
ما يه سوال من در برنامه ام header and footer دارم و مي بايست يه عكس هم در جايي خاص قراردهم و يه tabel هم دارم كه بعضي از عدد هاش بايد تغيير كنه ...حال اين ها را چه كار كنم ..؟
header and footer را امتحان كردم ولي جواب نداد ...
لطفا" من را راهنمايي كنيد ..متشكرم

تذکر : من تازه کارم پیام خصوصی نمی توانم بفرستم!
درمورد header and footer من متوجه نشدم منظورتان چیه اما در مورد جدول . شما می توانید با کمک خاصیت جدول که در داکیومنت قراردارد هر کاری بکنید من تا حال کار نکرده ام ولی کاری نداره! با تشکر

s_ahmadneya
چهارشنبه 29 آبان 1387, 10:35 صبح
1- طریقه استفاده از رنج : عکس ویا متن کلیبورد در پنجمین کاراکتر متن pase می شود



Range range = Word_doc.Range(ref missing, ref missing);
object start=5;
object end =5;
Word_doc.Range(ref start, ref end).Paste();

Afshin160
چهارشنبه 29 آبان 1387, 10:46 صبح
سلام..
بازهم متشكرم


تذکر : من تازه کارم پیام خصوصی نمی توانم بفرستم!
درمورد header and footer من متوجه نشدم منظورتان چیه اما در مورد جدول . شما می توانید با کمک خاصیت جدول که در داکیومنت قراردارد هر کاری بکنید من تا حال کار نکرده ام ولی کاری نداره! با تشکر


دوست عزيز در word و مسير View\hedear and footer شما ميتونيد سر صفحه و پايين صفحه اي ايجاد كنيد براي كل صفحات word .
حال من ميخواهم در هدر و فوتر اين را قرار بدهم #name# و حال از برنامه ام اين كنترل كنم و تغيير بدهم .

موفق باشيد .

s_ahmadneya
چهارشنبه 29 آبان 1387, 22:37 عصر
- چطور يه سل خاص را در يه table در ورد پر كنم ؟


با سلام .باکد زیر دقیقا" به سلهای جدول دسترسی دارید وهر کاری می توانیدانجام دهید


تعریف متغیرهای در قسمت عمومی
static object missing = Missing.Value;
public object oEndOffDoc = "\\endoffdoc";
public Microsoft.Office.Interop.Word.Application Word_App;
public Microsoft.Office.Interop.Word.Document Word_doc;
object fileName;
Microsoft.Office.Interop.Word.Table tabel;
Microsoft.Office.Interop.Word.Range RANG;




///<summary>
/// بازکردن فایل -ساختن جدول دریک جای خاص فایل-پرکردن جدول و تغییر مقدار جدول
///</summary>
///<param name="sender"></param>
///<param name="e"></param>
privatevoid button1_Click(object sender, EventArgs e)
{


Word_App=new Microsoft.Office.Interop.Word.Application();

fileName = @"c:\1.doc";
Word_doc = Word_App.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);

Word_App.Visible=true;
object start = 15;
object end = 15;

RANG=Word_doc.Range(ref start ,ref end );
MessageBox.Show(RANG.Text);

tabel = Word_doc.Tables.Add(RANG, 3, 5, ref missing, ref missing);
tabel.Range.ParagraphFormat.SpaceAfter = 6;
int i;
int j;
for (i = 1; i <= 3; i++)
{
for (j = 1; j <= 5; j++)
{
tabel.Cell(i, j).Range.Text = "cell[" + i.ToString() + "," + j.ToString() + "]";
tabel.Cell(i, j).Range.Borders.Enable = 1;

}
tabel.Rows[i].Range.Font.Bold = 0;
tabel.Rows[i].Range.Font.Italic = 0;
tabel.Rows[i].Range.Font.SizeBi = 12;
tabel.Rows[i].Range.Font.NameBi = "Tahoma";
}
}

کد بالابا فایل ضمیه تست کردم جواب می داد .
اما درمورد فوتر وهیتر .من فعلا کارنکردم ولی خلاصه اش اینه سعی کن انشاء الله درست می شد نشد بگو در خدمتیم


Word_doc.Sections[1].Headers[WdHeaderFooterIndex.wdHeaderFooterFirstPage].Range.Text


ضمنا" آقای مجتبی شعبانی هم کد بسیار جالبی در سایت داره .من خیلی استفاده کردم .جاداره از ایشان تشکر کنم

علیرضا حسن زاده
شنبه 01 خرداد 1389, 08:19 صبح
سلام میدونم این تاپیک خیلی قدیمه ولی با مطالعه اون دیدم پست های خوبی دادن گفتم شاید مشکل من هم حل بشه؟
چطوری میشه یه TextBox تو ورد ایجاد کرد و مکانش رو هم بشه تغییر داد البته با برنامه نویسی نه با خود Word؟

s_ahmadneya
سه شنبه 11 خرداد 1389, 17:13 عصر
سلام میدونم این تاپیک خیلی قدیمه ولی با مطالعه اون دیدم پست های خوبی دادن گفتم شاید مشکل من هم حل بشه؟
چطوری میشه یه TextBox تو ورد ایجاد کرد و مکانش رو هم بشه تغییر داد البته با برنامه نویسی نه با خود Word؟
http://msdn.microsoft.com/en-us/library/bb386200.aspx
به لینک بالا نگاهی بنداز
با مطالبی که درسایت است به نتیجه می رسی
اگه شد کدش را قرار بده اگه نشد کمکت می کنیم!

snekooei
جمعه 18 تیر 1389, 21:55 عصر
با سلام
با راهنمايي هاي شما در اين تاپيك،
فايل ورد رو ساختم و مطلب رو هم توش نوشتم.
حالا ميخام فايلو باز كنه و مطلب بعدي رو به آخر اون اضافه كنه
اگه ميشه با يه كد خيلي ساده مثال بزنيد

peyman-rashidi
دوشنبه 27 تیر 1390, 01:52 صبح
http://social.msdn.microsoft.com/Forums/en/vbide/thread/1558f560-8ae6-413a-bbc4-aa8d5d912aac

HAMRAHSOFT.IR
شنبه 19 شهریور 1390, 10:31 صبح
ببخشید من ان برنامه (http://www.codeproject.com/KB/office/WordInDotnet.aspx) دانلود کردم برنامه خوبی ولی حلا اگه بخوایم فایل ورد بجای که داخل پنچره کنار باز کنه خود برنامه ورد باز بشه و همین کارها انجام بدیم باید چکار کنم

دوستا کدی دارن که با اون بشه فایل ورد باز کرد؟