我正在尝试将HTML页面内容导出到Word。
我的Html显示页面是:
NA
点击事件的按钮。按钮单击事件将打开MS word并将页面内容粘贴到单词中。
单词页面包含html设计页面的表属性。它仅在Word 2003中出现。但在word 2007中,word文档包含带有out属性的文本。如何在word 2003中删除此表属性。
我无法添加快照。否则我会告诉你。
我正在通过aspx设计网页。我通过以下代码导出网页内容。
protected void Button1_Click(object sender, EventArgs e)
{
Response.ContentEncoding = System.Text.Encoding.UTF7;
System.Text.StringBuilder SB = new System.Text.StringBuilder();
System.IO.StringWriter SW = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlTW = new System.Web.UI.HtmlTextWriter(SW);
tbl.RenderControl(htmlTW);
string strBody = "<html>" +
"<body>" + "<div><b>" + htmlTW.InnerWriter.ToString() + "</b></div>" +
"</body>" +
"</html>";
Response.AppendHeader("Content-Type", "application/msword");
Response.AppendHeader("Content-disposition", "attachment; filename=" + fileName);
Response.ContentEncoding = System.Text.Encoding.UTF7;
string fileName1 = "C://Temp/Excel" + DateTime.Now.Millisecond.ToString();
BinaryWriter writer = new BinaryWriter(File.Open(fileName1, FileMode.Create));
writer.Write(strBody);
writer.Close();
FileStream fs = new FileStream(fileName1, FileMode.Open, FileAccess.Read);
byte[] renderedBytes;
// Create a byte array of file stream length
renderedBytes = new byte[fs.Length];
//Read block of bytes from stream into the byte array
fs.Read(renderedBytes, 0, System.Convert.ToInt32(fs.Length));
//Close the File Stream
fs.Close();
FileInfo TheFile = new FileInfo(fileName1);
if (TheFile.Exists)
{
File.Delete(fileName1);
}
Response.BinaryWrite(renderedBytes);
Response.Flush();
Response.End();
}
答案 0 :(得分:1)
您正在撰写HTML,声称其内容类型为“application / msword”,然后希望获得最佳效果..
有更多“正确”的方法来实现您的目标。
有一些项目用于将(X)HTML转换为WordML内容,其中docx4j-ImportXHTML.NET是一个。披露:我坚持认为;您可以在StackOverflow上找到其他地方的链接。
或者,您可以使用Word的altChunk机制,但请注意:
答案 1 :(得分:0)
问题不明确。
嗯,这些链接可以帮助您理解MSWord-C#automation:
http://www.codeproject.com/KB/cs/Simple_Ms_Word_Automation.aspx
答案 2 :(得分:0)
您还可以尝试创建现在由MS Office识别的Open XML文档。 以下是代码示例的更多信息: http://msdn.microsoft.com/en-us/library/bb656295.aspx
答案 3 :(得分:0)
根据我的理解,您正在尝试动态创建ms word文档,并且在Word 2003与2007年中查看输出时遇到困难。
在上面的代码中,您只是吐出html并强制它成为ms word文档。我很惊讶它甚至可以工作。
相反,您可能希望使用Office Interop(Microsoft.Office.Interop.Word)或使用nuget安装DocX。在线查看一些示例,搜索“C#create word doc”。