PDA

View Full Version : نوشتن داخل فابل ورود(بوک مارک) به وسیله asp.net



saeed31641
چهارشنبه 03 دی 1393, 21:56 عصر
با سلام
من دارم سعی میکنم که بتونم با استفاده asp.net اخل یه فایل ورد که از نوع تمپلت (dot) هست بنویسم امدم داخل فایا ورد چند تا بوک مارک تعریف کردم بعد با برنامه به بوک مارک چیزی انتساب دادم ولی متاسفانه اصلا چیزی نمی نویسه برنامه رو تریس کردم بوک مارک رو تشخیص میده ولی چیزی نمی نویسه


public void createdoc1()
{
var oWordApplication = new Application();

object missing = System.Reflection.Missing.Value;
//object fileName = ConfigurationManager.AppSettings["DocxPath"];@"C:\DocXExample.docx";
string fileName = @"D:\120\template1.dot";
object newTemplate = false;
object docType = 0;
object isVisible = true;

var oWordDoc = oWordApplication.Documents.Open(fileName, newTemplate, docType, isVisible,ref missing);
oWordApplication.ActiveWindow.View.ReadingLayout = false;



if (oWordDoc.Bookmarks.Exists("Title"))
{
oWordDoc.Bookmarks["Title"].Range.Text = "Test Field Entry from webform";

oWordDoc.Bookmarks["Address"].Range.Text = "Address Field Entry from webform";


}



oWordDoc.Activate();

}

saeed31641
جمعه 05 دی 1393, 10:28 صبح
سلام خودم جواب بالا بدست اوردم میزارم تا بقیه دوستان استفاده کنند.ابتدا یه فایل تمپلت با ورد درست کنید نقاطی رو که میخاین با بوک مارک انتخاب کنید و یه اسم بهش بدید حالا بیاین با دانت پرش کنید.



public void createdoc1()
{
var realpath="~/template";
var filePath = Path.Combine(HttpContext.Current.Server.MapPath("~/template"), Lcourseid.Text + ".doc");
var oWordApplication = new Application();
DirectoryInfo dir = new DirectoryInfo(Server.MapPath(realpath));
foreach (FileInfo files in dir.GetFiles())
{
files.Delete();
}
// To invoke MyMethod with the default argument value, pass
// Missing.Value for the optional parameter.
object missing = System.Reflection.Missing.Value;

//object fileName = ConfigurationManager.AppSettings["DocxPath"];@"C:\DocXExample.docx";
string fileName = @"D:\template1.dot";
//string fileName1 = @"D:\sss.doc";
object newTemplate = false;
object docType = 0;
object isVisible = true;

//System.Reflection.Missing.Value is used here for telling that method to use default parameter values when method execution
oDoc = oWordApplication.Documents.Open(fileName, newTemplate, docType, isVisible, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
// usable in earlier versions of Microsoft Word v2003 v11
// if(Convert.ToInt16(oWordApplication.Version) >=11)
{
//Sets or returns a Boolean that represents whether a document is being viewed in reading layout view.
oDoc.ActiveWindow.View.ReadingLayout = false;
}

//The active window is the window that currently has focus.If there are no windows open, an exception is thrown.
//microsoft.office.tools.word.
oDoc.Activate();

if (oDoc.Bookmarks.Exists("Title"))
{
oDoc.Bookmarks["Title"].Range.Text = "Test Field Entry from webform";
oDoc.Bookmarks["Address"].Range.Text = "Address Field Entry from webform";
}

oDoc.SaveAs(filePath, ref missing);
oWordApplication.Documents.Close(ref missing, ref missing, ref missing);
//oWordApplication.Quit(ref SaveChanges, ref missing, ref missing, ref missing);
ProcessRequest(filePath, Lcourseid.Text);

}



فقط زمانی که رو iis lمیزارید مشکلی داره که باید تنظیمات دسترسیشو درست کنید که از لینک زیر می تونید برطرف نمایید
http://forums.asp.net/t/1902899.aspx?Cannot+open+a+Word+doc

dehqhani
شنبه 06 دی 1393, 11:25 صبح
سلام دوست عزیز اگر امکانش هست یه مثال یا نمونه سورس بزارید برای ما مبتدیان تا بهتر متوجه بشیم


با تشکر