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单元格格式
- 文本:vnd.ms-excel.numberformat:@
- 日期:vnd.ms-excel.numberformat:yyyy/mm/dd
- 数字:vnd.ms-excel.numberformat:#,##0.00
- 货币:vnd.ms-excel.numberformat:¥#,##0.00
- 百分比:vnd.ms-excel.numberformat: #0.00%
如:
<td style=\"vnd.ms-excel.numberformat:@\">122414323543254354353</td>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器