C# 根据HTML生成World文件以及添加附件方法
根据HTML转换world保存到本地项目
这种方法的弊端是,不能引用任何外部的js和css和图片使用,只能手写原生
#region 转换为Word文档样式
var html = "<div>你好</div>";
StringBuilder sb = new StringBuilder();
sb.Append(
"<html xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" xmlns:m=\"http://schemas.microsoft.com/office/2004/12/omml\"xmlns = \"http://www.w3.org/TR/REC-html40\">");
sb.Append(html);
sb.Append("</html>");
FileStream fs = new FileStream(@"D:\test.doc", FileMode.OpenOrCreate, FileAccess.ReadWrite); //可以指定盘符,也可以指定任意文件名,还可以为word等文件
StreamWriter sw = new StreamWriter(fs, Encoding.UTF8); // 创建写入流
sw.WriteLine(sb); // 写入Hello World
sw.Close(); //关闭文件
fs.Close();
#endregion
根据HTML转换Base64,放进Email的附件,不会在本地生成文件
var html = <div>Hellow Word</div>;
StringBuilder sb = new StringBuilder();
sb.Append(
"<html xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" xmlns:m=\"http://schemas.microsoft.com/office/2004/12/omml\"xmlns = \"http://www.w3.org/TR/REC-html40\">");
sb.Append(html);
sb.Append("</html>");
byte[] b = Encoding.UTF8.GetBytes(sb.ToString());
Entity emailId = new Entity("email");
string subject = "通知";
//创建附件
var fileInfos = new List<FileDataInfo>();
var fileInfo = new FileDataInfo() { FileData = Convert.ToBase64String(b), FileName = "通知.doc" };
fileInfos.Add(fileInfo);
到此就结束啦,快去练习一下吧!欢迎大佬和小Monkey沟通。
感谢大佬指正 小Monkey
如果你觉得有用的话,就留个赞吧!蟹蟹