Файл.Doc не создается должным образом в asp.net с тегами HTML

  • .doc не создается должным образом. создание с полными тегами HTML вместо слов

как ниже данные в документе MS Word

<div id="ctl00_ContentPlaceHolder1_design" style="width:600px">
        <table id="ctl00_ContentPlaceHolder1_rpt" border="0" width="600"> 

Как преобразовать HTML-теги в обычный контент?

aspx.cs

 protected void btnMail_Click(object sender, EventArgs e)
 {
     Response.Clear();
     try
     {
         System.IO.StringWriter stringWrite = new System.IO.StringWriter();
         System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
         design.RenderControl(htmlWrite);
         string strBuilder = stringWrite.ToString();
         string strPath = Request.PhysicalApplicationPath + "\\Temp\\WeeklyReport of " + Projname + ".doc";


         if (File.Exists(strPath))
         {
             var counter = 1;
             strPath = strPath.Replace(".doc", " (" + counter + ").doc");
             while (File.Exists(strPath))
             {
                 strPath = strPath.Replace("(" + counter + ").doc", "(" + (counter + 1) + ").doc");
                 counter++;
             }
         }
         var doc = DocX.Create(strPath,DocumentTypes.Document);
         doc.InsertParagraph(strBuilder);
         doc.Save();
     }
 }

1 ответ

Решение

Если вам нужен весь текст внутри div, то вы можете сделать это.

ASP.NET

<div runat="server" id="design" style="width:600px">
 SOME TEXT <span> text </span>
</div>

C#:

string allTextInsideDiv = design.InnerText; //You should get "SOME TEXT text"

Отредактировано: в продолжение нашего обсуждения вы не могли получить InnerText, так как у вас есть некоторые серверные элементы управления ASP.NET внутри div. Таким образом, решение было бы получить HTML-код и, используя объект XmlDocument или HtmlDocument, загрузить в него содержимое. Затем извлеките InnerText.

Образец кода:

System.IO.StringWriter stringWrite = new System.IO.StringWriter(); 
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); 
div_myDiv.RenderControl(htmlWrite); 
string myText = stringWrite.ToString().Replace("&", "&amp;");
XmlDocument xDoc = new XmlDocument(); 
xDoc.LoadXml(myText); 
string rawText = xDoc.InnerText;
Другие вопросы по тегам