//基本導出方法
public void Download()
{
Random rd = new Random();
string fileName = DateTime.Now.ToString("yyyyMMddhhmm") + rd.Next() + ".doc";
//存儲路徑
string path = Server.MapPath(fileName);
//創建字符輸出流
StreamWriter sw = new StreamWriter(path, true, System.Text.UnicodeEncoding.UTF8);
//需要導出的內容
// string str = "<html><head><title>無標題文檔</title></head><body>這里放從數據庫導出的word文檔內容</body></html>";
string str = "";
str += "<html><head><title>無標題文檔</title></head><body>";
str += "<div>閱讀報表</div>";
str += "<table border='1'><tr>";
str += "<td>20000</td>";
str += "<td>10000</td></tr><tr>";
str += "<td>30000</td>";
str += "<td>30000</td><tr>";
str += "</table></body></html>";
//寫入
sw.Write(str);
sw.Close();
Response.Clear();
Response.Buffer = true;
this.EnableViewState = false;
Response.Charset = "utf-8";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.ContentType = "application/octet-stream";
Response.WriteFile(path);
Response.Flush();
Response.Close();
Response.End();
}
//圖片處理方法 圖片轉字節 base64 放到img src 中 如 <img src="data:image/jpeg;base64,ImgToBase64String(string Imagefilename)) />
private string ImgToBase64String(string Imagefilename)
{
string result = "";
try
{
using (FileStream fs = new FileStream(Imagefilename,FileMode.Open,FileAccess.Read))
{
byte[] byteArray = new byte[fs.Length];
fs.Read(byteArray, 0, byteArray.Length);
result = Convert.ToBase64String(byteArray);
}
}
catch
{
result = "";
}
return result;
}
/// <summary>
/// 富文本框 內容里面的 圖片處理
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
public string ContentHandler(string text)
{
if (string.IsNullOrEmpty(text))
{
return text;
}
HtmlDocument document = new HtmlDocument();
document.LoadHtml(text);
var imgNodes = document.DocumentNode.SelectNodes("//img");
if (imgNodes != null)
{
Parallel.ForEach(imgNodes, imgNode =>
{
var src = imgNode.GetAttributeValue("src", "");
if (!string.IsNullOrEmpty(src))
{
var filename = context.Server.MapPath(src);
if (File.Exists(filename))
{
imgNode.SetAttributeValue("src", "data:image/jpeg;base64," + ImgToBase64String(filename));
}
}
});
}
return document.DocumentNode.OuterHtml;
}