excel文件主要是输出html代码。以xls的文本格式保存文件。 生成excel格式的代码: [code lang="CSharp"] /// <summary> /// 输出excel格式的html代码 /// </summary> /// <param name="dt"></param> /// <param name="fileName"></param> /// <param name="tableHeader"></param> /// <param name="UseDefinedHeader"></param> /// <returns></returns> public string MakeExcelStr(DataTable dt, string fileName, string[] tableHeader,bool UseDefinedHeader) { StringBuilder strResult = new StringBuilder(); int iColCount = dt.Columns.Count; if (dt.Columns.Count == 0) return strResult.ToString(); strResult.Append("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">"); strResult.Append("<tr style=\"font-weight: bold; white-space: nowrap;\">"); if (UseDefinedHeader)//是否是用户自定义表头 { for (int i = 0; i < tableHeader.Length; i++) { strResult.Append("<td style=\"text-align:center\">" + tableHeader[i] + "</td>");//让文本居中显示 } } else { for (int i = 0; i < iColCount; i++) { strResult.Append("<td style=\"text-align:center\">" + (dt.Columns[i] + "").ToString() + "</td>"); } } strResult.Append("</tr>"); foreach (DataRow dr in dt.Rows) { strResult.Append("<tr>"); for (int i = 0; i < iColCount; i++) { // style=\"vnd.ms-excel.numberformat:@\" strResult.Append("<td style=\"vnd.ms-excel.numberformat:@\">'" + (dr[i] + "").ToString() + "</td>");//设置单元格是文本格式(防止文本是科学计算法,即E+***这种情况) } strResult.Append("</tr>"); } strResult.Append("</table>"); return strResult.ToString(); } [/code] 把生成的excel格式的代码保存成excel文件的方法 [code lang="CSharp"] /// <summary> /// 导出excel表格 /// </summary> /// <param name="dt"></param> /// <param name="fileName"></param> /// <param name="tableHeader">表头</param> /// <param name="Defined">是否自定义表头</param> private void ExprotToExcel(DataTable dt, string fileName, string[] tableHeader, bool Defined) { DogManage.Common.ExcelHelper excelHelper = new DogManage.Common.ExcelHelper(); string result = excelHelper.MakeExcelStr(dt, fileName, tableHeader,Defined); HttpContext.Current.Response.Clear(); System.IO.StringWriter sw = new System.IO.StringWriter(); sw.Write(result); sw.Close(); string str2 = HttpUtility.UrlEncode(fileName + "_" + DateTime.Now.ToString("yyyy-MM-dd")); HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" +str2 + ".xls"); HttpContext.Current.Response.ContentType = "application/ms-excel"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8"); HttpContext.Current.Response.Write(sw); HttpContext.Current.Response.End(); } [/code] 生成word的代码: [code lang="CSharp"] private void exportword() { Response.Clear(); Response.Buffer = true; Response.Charset = "utf-8"; Response.AppendHeader("Content-Disposition", "attachment;filename=tmp.doc"); Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8"); Response.ContentType = "application/ms-word"; this.EnableViewState = false; System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); oHtmlTextWriter.WriteLine(hf.Value); Response.Write(oStringWriter.ToString()); Response.End(); } [/code] csv文件就是一个有特定格式的字符串拼接出来的文件,每个列通过,分割开来。换行则两外输出一行文本就行了 生成csv文件的代码: [code lang="CSharp"] /// <summary> /// 输出csv文件的代码 /// </summary> /// <param name="dt"></param> /// <param name="fileName"></param> /// <param name="tableHeader">表头</param> /// <returns></returns> public string MakeCSVStr(DataTable dt, string fileName, string[] tableHeader) { StringBuilder strResult = new StringBuilder(); string temp = string.Empty; int iColCount = dt.Columns.Count; if (iColCount == 0) return strResult.ToString(); for (int i = 0; i < iColCount; i++) { temp+="\"" + dt.Columns[i] + "\""; if (i < iColCount - 1) temp+=","; } strResult.AppendLine(temp); foreach (DataRow dr in dt.Rows) { temp = ""; for (int i = 0; i < iColCount; i++) { if (!Convert.IsDBNull(dr[i])) temp+="\"" + dr[i].ToString() + "\""; else temp += "\"\""; if (i < iColCount - 1) temp+=","; } strResult.AppendLine(temp); } return strResult.ToString(); } [/code] 导出csv文件的方法: [code lang="CSharp"] /// <summary> /// 导出csv文件 /// </summary> /// <param name="dt"></param> /// <param name="fileName"></param> /// <param name="tableHeader">表头</param> /// <param name="Defined">是否自定义表头</param> private void ExprotToCSV(DataTable dt,string fileName, string[] tableHeader) { DogManage.Common.ExcelHelper excelHelper = new DogManage.Common.ExcelHelper(); string result=excelHelper.MakeCSVStr(dt, fileName, tableHeader); HttpContext.Current.Response.Clear(); System.IO.StringWriter sw = new System.IO.StringWriter(); sw.Write(result); sw.Close(); HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName + ".csv"); HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); HttpContext.Current.Response.Write(sw); HttpContext.Current.Response.End(); } [/code]

转载于:https://www.cnblogs.com/woaic/archive/2012/06/11/3942776.html

导出excel、word、csv文件方法汇总相关推荐

  1. oracle导出数据到 csv文件方法整理

    第一种方法,也是我使用的: 我通过这个方法,按照字段筛选数据,并分别导出多个csv文件: (1)首先创建存储一个过程,如下,直接复制粘贴即可 .这个存储过程可以直接使用,因为它是通用的,只需要你传入S ...

  2. pandas输出到excel_python读写excel等数据文件方法汇总

    python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv.txt等).excel文件.数据库文件.api等. 下面整理下python有哪些方式可以读取数据文件. 1. python ...

  3. python怎么读取txt文件并统计其字数-python读写excel等数据文件方法汇总

    python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv.txt等).excel文件.数据库文件.api等. 下面整理下python有哪些方式可以读取数据文件. 1. python ...

  4. Excel 打开 CSV 文件乱码解决方法

    Excel 打开 CSV 文件乱码解决方法 - 膨胀的面包 https://blog.wangtwothree.com/code/157.html 经常接触数据的朋友,可能时不时会遇到这种情况,一份 ...

  5. sqlplus导出oracle数据,Oracle SQLPlus导出数据到csv文件的方法

    这篇文章主要介绍了Oracle SQLPlus导出数据到csv文件,需要的朋友可以参考下 时不时地我们需要导出一些数据用作备份.查看报表等,如果用Sql Developer导出会非常慢.而用SqlPl ...

  6. 一文学会用Python操作Excel+Word+CSV

    作者:奈何缘浅wyj https://juejin.im/post/6868073137263607821 Python 操作 Excel 常用工具 数据处理是 Python 的一大应用场景,而 Ex ...

  7. PHP 导入导出excel、csv百万数据到数据库

    PHP 导入导出excel.csv百万数据到数据库 待解决: wamp下导入导出百万数据没有问题 lnmp下导入10W条数据没问题,导入50W及以上会出现nginx504报错 代码包地址 测试数据表地 ...

  8. MySQL导出数据为csv的方法

    MySQL导出数据为csv的方法 将数据库中的数据导出成csv格式的文件 CSV格式,其要点包括: (1)字段之间以逗号分隔,数据行之间以\r\n分隔: (2)字符串以半角双引号包围,字符串本身的双引 ...

  9. (转).NET导出Excel的四种方法及评测

    .NET导出Excel的四种方法及评测 导出Excel是.NET的常见需求,开源社区.市场上,都提供了不少各式各样的Excel操作相关包.本文,我将使用NPOI.EPPlus.OpenXML.Aspo ...

最新文章

  1. QShell下的进程和ILE中的Job
  2. grenndao 插入表数据报错
  3. cox风险回归模型参数估计_信用风险管理:分类模型和超参数调整
  4. python怎么样另存为_python要怎么保存python生成式
  5. .Net Core 简洁架构事件(这个不完整,待仔细补充)
  6. python常用第三方库(转载)
  7. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨2.62%
  8. arm中断保护和恢复_ARM中断处理过程
  9. 你的邮件为何被标记为垃圾邮件?
  10. SpringBoot-配置文件创建Bean的过程
  11. 不动点迭代法的收敛阶
  12. Python常用的设计模式
  13. Java语句详解(图解java语句概念、快速掌握java基础知识点)——Java基础系列
  14. 9008刷机工具_黔隆科技刷机教程OPPOR9S忘记密码免刷机保资料解屏幕锁教程
  15. 如何使用Arduino开发板和ADXL345加速度计跟踪方向
  16. onenote插入代码块的完美解决方法
  17. 计算机用什么配置好电脑,买电脑主要看哪些配置 决定电脑好坏的关键
  18. Cisco路由器配置动态路由rip
  19. 火车头采集翻页内容_火车头采集器怎么采集内容页的分页
  20. 阿里高校实践计划 class6 搭建nas个人网盘

热门文章

  1. unity头顶状态制作_Unity中结合IK实现Lookat
  2. int 为什么是2147483647_「2147483647」当int类型超出了[-2147483648,2147483647]会发生什么? - seo实验室...
  3. qt label显示图片_Qt官方示例-QML Axes
  4. mysql+vs检测不到_VS2017 + EF + MySQL 我使用过程中遇到的坑
  5. idea编译器没有tomcat的选项解决方案
  6. 人工神经网络理论、设计及应用_红层软岩大直径素混凝土置换桩复合地基设计理论及应用研究——以成都 ICON云端项目为例...
  7. 机器学习_一条会说666的咸鱼
  8. 电脑打字学习_新手如何学会电脑打字 走上盲打之路
  9. mvdr波束形成原理_有了波束赋形这个5G黑科技,让你畅享飞一样的网速
  10. thread.sleep会释放锁吗_面试 LockSupport.park()会释放锁资源吗?