一,datatable导出Excel,用户可以选择路径,方法如下:

  1. /// <summary>
  2. /// DataTable导出到Excel
  3. /// </summary>
  4. /// <param name="dt">DataTable类型的数据源</param>
  5. /// <param name="FileName">文件名</param>
  6. /// <param name="httpContext">httpcontext</param>
  7. public void CreateExcel(DataTable dt, string FileName, HttpContext httpContext)
  8. {
  9. httpContext.Response.Clear();
  10. httpContext.Response.Charset = "UTF-8";
  11. httpContext.Response.Buffer = true;
  12. httpContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
  13. httpContext.Response.AppendHeader("Content-Disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls\"");
  14. httpContext.Response.ContentType = "application/ms-excel";
  15. string colHeaders = string.Empty;
  16. string ls_item = string.Empty;
  17. DataRow[] myRow = dt.Select();
  18. int i = ;
  19. int cl = dt.Columns.Count;
  20. for (int j = ; j < dt.Columns.Count; j++)
  21. {
  22. ls_item += dt.Columns[j].ColumnName + "\t"; //栏位:自动跳到下一单元格
  23. }
  24. ls_item = ls_item.Substring(, ls_item.Length - ) + "\n";
  25. foreach (DataRow row in myRow)
  26. {
  27. for (i = ; i < cl; i++)
  28. {
  29. if (i == (cl - ))
  30. {
  31. ls_item += row[i].ToString() + "\n";
  32. }
  33. else
  34. {
  35. ls_item += row[i].ToString() + "\t";
  36. }
  37. }
  38. httpContext.Response.Output.Write(ls_item);
  39. ls_item = string.Empty;
  40. }
  41. httpContext.Response.Output.Flush();
  42. httpContext.Response.End();
  43. }

前端页面调用方法如下:

  1. <a href="Import.ashx" >导出Excel</a>

二,datatable导出Excel,保存到服务器上。方法如下:

  1. /// <summary>
  2. /// DataTable导出到Excel
  3. /// </summary>
  4. /// <param name="table">DataTable类型的数据源</param>
  5. /// <param name="file">需要导出的文件路径</param>
  6. public void dataTableToCsv(DataTable table, string file)
  7. {
  8. string title = "";
  9. FileStream fs = new FileStream(file, FileMode.OpenOrCreate);
  10. StreamWriter sw = new StreamWriter(new BufferedStream(fs), System.Text.Encoding.Default);
  11. for (int i = 0; i < table.Columns.Count; i++)
  12. {
  13. title += table.Columns[i].ColumnName + "\t"; //栏位:自动跳到下一单元格
  14. }
  15. title = title.Substring(0, title.Length - 1) + "\n";
  16. sw.Write(title);
  17. foreach (DataRow row in table.Rows)
  18. {
  19. string line = "";
  20. for (int i = 0; i < table.Columns.Count; i++)
  21. {
  22. line += row[i].ToString().Trim() + "\t"; //内容:自动跳到下一单元格
  23. }
  24. line = line.Substring(0, line.Length - 1) + "\n";
  25. sw.Write(line);
  26. }
  27. sw.Close();
  28. fs.Close();
  29. }

前端调用方法:

  1. <a onclick="Import()">导出Excel</a>
  2. function Import() {
  3. $.post("Import.ashx", {}, function (data) {
  4. alert("导出成功");
  5. });
  6. }

  

ashx导出dataTable为Excel的更多相关文章

  1. 简洁的导出 datatable到excel,不用组件

    简洁的导出 datatable到excel var lines = new List<string>(); string[] columnNames = dataTable.Columns ...

  2. 使用NPOI导出DataTable到Excel

    使用C#对DataTable导出到Excel是我们工作当中比较多用到的场景,微软提供了Microsoft.Office.Interop.Excel组件可以进行操作,但是该组件在数据量大的时候速度很慢, ...

  3. ClosedXML、DocumentFormat.OpenXml导出DataTable到Excel

    在很多系统中都用到导出,使用过多种导出方式,觉得ClosedXML插件的导出简单又方便. 并且ClosedXML.DocumentFormat.OpenXml都是MIT开源. 首先通过 Nuget 安 ...

  4. NPOI通过DataTable导出和读取Excel

    Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题: 导出问题: 如果是asp.net,你得 ...

  5. 从DataTable高效率导出数据到Excel

    首先从数据库读取数据到DataTable,这我就不提了,大家都明白.下面直接介绍如何从DataTable高效率导出数据到Excel中的方法,代码如下: using Microsoft.Office.I ...

  6. 使用Aspose将DataTable转Excel

    0.准备工作   1.下载并引入Aspose.Cells 下载Aspose Cells并引入using Aspose.Cells 下面示例中用的是.net 3.0版本的Aspose Cells,编译环 ...

  7. 1.ASP.NET MVC使用EPPlus,导出数据到Excel中

    好久没写博客了,今天特地来更新一下,今天我们要学习的是如何导出数据到Excel文件中,这里我使用的是免费开源的Epplus组件. 源代码下载:https://github.com/caofangshe ...

  8. 导出数据到Excel --使用ExcelReport有感

    先看图,这是几个月前用NPOI写的导出数据到Excel,用了上百行代码,而且难控制,导出来也比较难看 excel打开的效果 下面是我用ExcelReport类库导出到Excel的操作 1.首先引用Ex ...

  9. 使用Open xml 操作Excel系列之二--从data table导出数据到Excel

    由于Excel中提供了透视表PivotTable,许多项目都使用它来作为数据分析报表. 在有些情况下,我们需要在Excel中设计好模板,包括数据源表,透视表等, 当数据导入到数据源表时,自动更新透视表 ...

随机推荐

  1. node多人聊天室搭建

    1.采用websocket: 为什么不用ajax的http:在用HTTP发送消息时,必须用一个新的TCP/IP连接.打开和关闭连接需要时间.此 外,因为每次请求都要发送HTTP头,所以传输的数据量也比 ...

  2. HTML5新增常用属性

    一. 代码名称语义化的好处 1.能让搜索引擎更好的收录 2.对于特殊设备如盲人设备好解析 二.article和section的区别 article(文章):独立且能被外部引用 section(章节.段 ...

  3. highcharts 大数据 String+,StringBuilder,String.format运行效率比较

    实现String字符串相加的方法有很多,常见的有直接相加,StringBuilder.append和String.format,这三者的运行效率是有差异的,String是final类型的,每次相加都会 ...

  4. 火狐开发----从头用到尾的cfx

    此教程阐述了如何使用 SDK 开发一个简单的扩展. 准备 要想使用 SDK 开发 Firefox 的扩展,您首先需要 安装并激活 SDK.一旦您完成了以上步骤,您将会看到一个命令行窗口. 初始化一个空 ...

  5. iOS项目之使用开关控制日志输出的功能

    最近一直在做sdk的项目,用户提出了一个需求,需要屏蔽sdk内部的日志输出.由于sdk内部的日志是为了调试,如果屏蔽了肯定不方便,所以研究了一下日志输出开关的功能. 在这里介绍两种实现方案:一种方案是 ...

  6. bui前端框架+yii整理

    这个是做bui前端样式整合的时候记录的. 首先当然是要下载一个yii的源码,搭建起来. 第一步将bui的样式迁移到yii的样式目录中去 这里我在样式外面加了一个bui的文件夹,表示这个文件夹中存放的是 ...

  7. Linux笔记 #10# 用于支持Web应用开发&部署&配置的一些自定义脚本

    索引 一.本地开发与测试相关脚本 1.startup.sh 2.shutdown.sh 3.catalina-out.sh 4.localhost_access_log.sh 5.上传本地文件到服务器 ...

  8. flutter sqflite

    https://www.jianshu.com/p/88998af66e4b https://www.jianshu.com/p/7ac3ce2bc0c6

  9. MyPython

    目录 Python,那些不可不知的事儿 Python简介 Python环境搭建 从Hello World开始 Python中的数据类型 函数 模块 面向对象 More Python,那些不可不知的事儿 ...

  10. 将一,二维数组转化为Excel格式

    首先,我们来看一下一维数组的, 其代码可以如下: import numpy as np import pandas as pd x = pd.Series([1, 3, 5, np.nan]) pri ...