C# 導出Excel的幾種簡單方法


1. \t 格式導出

string reStr = "{0}\t{1}\t{2}";
StringWriter sw = new StringWriter();
sw.WriteLine(reStr, "車輛編號", "車牌號", "發動機號");
sw.Close();
string fileName = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")+ ".xls";
context.Response.Clear();
context.Response.Charset = "GB2312";
context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
context.Response.ContentType = "application/ms-excel";
string browser = context.Request.Browser.Browser;
if (browser.Contains("InternetExplorer"))
     context.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName));
else
     context.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
context.Response.Flush();
context.Response.Write(sw);
context.Response.End();

2. Html格式導出

string reStr = "<tr><td style=\"text-align: center;\">{0}</td><td style=\"text-align: center;\">{1}</td><td style=\"text-align: center;\">{2}</td><td style=\"text-align: center;\">{3}</td>"
StringWriter sw = new StringWriter();
sw.WriteLine(reStr.Replace("td","th"), "車輛編號", "車牌號", "發動機號", "底盤號");
sw.Close();
string fileName = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")+ ".xls";
context.Response.Clear();
context.Response.Charset = "GB2312";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
context.Response.ContentType = "application/ms-excel";
string browser = context.Request.Browser.Browser;
if (browser.Contains("InternetExplorer"))
     context.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName));
else
     context.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
context.Response.Flush();
context.Response.Write(AddExcelHeader());
context.Response.Write(sw);
context.Response.Write(AddExcelFooter());
context.Response.End();

public string AddExcelHeader() 
{
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.Append("<html xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:o=\"urn:schemas-microsoft-com:office:office\"xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns=\"http://www.w3.org/TR/REC-html40\">");
    sb.Append("<head>");
    sb.Append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"><meta name=\"ProgId\" content=\"Excel.Sheet\"/><meta name=\"Generator\" content=\"WPS Office ET\"/>");
    sb.Append("<!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name></x:Name><x:WorksheetOptions><x:Selected/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]-->");
    sb.Append("</head>");
    sb.Append("<body>");
    sb.Append("<div style=\"text-align: center;\">");
    sb.Append("<table>");
    return sb.ToString();
}

public string AddExcelFooter() 
{
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.Append("</table>");
    sb.Append("</div>");
    sb.Append("</body>");
    sb.Append("</html>");
    return sb.ToString();
}

3. Html格式導出時設置Excel單元格格式

  1. 文本:vnd.ms-excel.numberformat:@
  2. 日期:vnd.ms-excel.numberformat:yyyy/mm/dd
  3. 數字:vnd.ms-excel.numberformat:#,##0.00
  4. 貨幣:vnd.ms-excel.numberformat:¥#,##0.00
  5. 百分比:vnd.ms-excel.numberformat: #0.00%

如:

 <td style=\"vnd.ms-excel.numberformat:@\">122414323543254354353</td>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM