PDA

View Full Version : سوال: Error دادن هنگام باز کردن فایل وردی که توسط برنامه ام به آن متن ارسال شده است



Alireza.imani
پنج شنبه 11 آبان 1391, 21:11 عصر
سلام دوستان...من از طریق برنامه به یک فایل ورد متن ارسال می کنم،اما وقتی ورد را باز می کنم پیغام زیر نمایان می شود :

http://upcity.ir/images/93599734937531218126.jpg

اشکال از کجاست ؟

abcd_a
یک شنبه 14 آبان 1391, 18:20 عصر
سلام
فایلی که اسمش ff باز نمیشه، اگه مشکلی نیست یه بخش از کدتون که مربوط به این خطا است را بزارید ؟

Alireza.imani
یک شنبه 14 آبان 1391, 18:24 عصر
این کد فرستادن متنم هست :



StreamWriter gf=new StreamWriter(@"C:\Users\pc\Documents\English.docx");
gf.WriteLineAsync(richTextBox1.Text);

gf.Close();





MessageBox.Show(" با موفقیت انجام شد ");


لطفا بعد از این تاپیکم یه سر به تاپیک دیگه ام بزنید.

Alireza.imani
دوشنبه 15 آبان 1391, 12:59 عصر
دوستان کسی نیست جواب بده.....


کمک کمک کمک کمک کمک:گریه:

مهرداد صفا
دوشنبه 15 آبان 1391, 22:21 عصر
سلام
اگر امکان دارد متن پیغام خطا را اینجا بنویسید.

MrsiLeNt
سه شنبه 16 آبان 1391, 01:20 صبح
دوست عزیر شما با این دستور نمیتونین یک فایل Docx یا همون word document ایجاد کنید چون ویژوال استودیو میاد فایل رو سیو می کنه فقط با اون پسوند که فایل docx یه سری اسمبلی هایی داره که شما باید رفرنس اون رو اضافه کنید. در ادامه یه مثال میزنم که بهتر متوجه بشین.
خوب یه تکست باکس بزرگ داریم(چون تو مثالتون ریچ تکس باکس آوردین با تکست باکس مثال زدم) میخواییم هر چی تو این نوشتیم رو ذخیره کنیم تو یه فایل docx . اولین کاری که باید بکنیم اینه که رفرنس اون رو اضافه کنیم. برای این کار از منوی project گزینه Add Refrence بعد روی
تب .NET بگردین دنبال این رفرنس : Microsoft.Office.Interop.Word
بعد ازاون باید using کنیدش در بالای name space خودتون :
Using Microsoft.Office.Interop.Word
حالا میریم سراغ کد نویسی :
اول از همه شما یه شی باید از کلاس Application ایجاد کنید. چون توی سی شارپ یک کلاس به همین نام هست برای اینکه قاطی نشه با name space تعریف میکنیم به ای شکل :
Microsoft.Office.Interop.Word.Application mf = new Microsoft.Office.Interop.Word.Application();

حالا باید یک سند جدید برای شیئ mf ایجاد کنیم :
mf.Documents.Add();

خوب حالا ما سند رو ایجاد کردیم حالا ما میخواییم متنی رو توی سند ایجاد شدمون قرار بدیمو قبل از اون این متن ما باید از جایی شروع بشه. پس نیاز به یک شیئ رنج داریم :
Range R = mf.ActiveDocument.Range(Start:0, End:0);

حوب حالا که نقطه شروع مشخص شد میتونیم نوشته ها(مقدار تکست باکس) یا هر چیزی رو اضافه کنیم:
R.Text = textBox1.Text;

و برای سیو کردن :
mf.ActiveDocument.SaveAs(FileName: @"C:\1.docx");
که من اینجا با اسم 1 سیو کردم
و بعد باید شی mf رو close کنید تا فضای اشغال شده رم رو از بین ببره :
mf.ActiveDocument.Close();
mf.Quit();

Alireza.imani
سه شنبه 05 دی 1391, 21:02 عصر
ممنون...از این کد که استفاده می کنم نوشته های قبلی ورد پاک میشن....راهی وجود نداره که پاک نشن؟