ashx导出dataTable为Excel
一,datatable导出Excel,用户可以选择路径,方法如下:
- /// <summary>
- /// DataTable导出到Excel
- /// </summary>
- /// <param name="dt">DataTable类型的数据源</param>
- /// <param name="FileName">文件名</param>
- /// <param name="httpContext">httpcontext</param>
- public void CreateExcel(DataTable dt, string FileName, HttpContext httpContext)
- {
- httpContext.Response.Clear();
- httpContext.Response.Charset = "UTF-8";
- httpContext.Response.Buffer = true;
- httpContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
- httpContext.Response.AppendHeader("Content-Disposition", "attachment;filename=\"" + System.Web.HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls\"");
- httpContext.Response.ContentType = "application/ms-excel";
- string colHeaders = string.Empty;
- string ls_item = string.Empty;
- DataRow[] myRow = dt.Select();
- int i = ;
- int cl = dt.Columns.Count;
- for (int j = ; j < dt.Columns.Count; j++)
- {
- ls_item += dt.Columns[j].ColumnName + "\t"; //栏位:自动跳到下一单元格
- }
- ls_item = ls_item.Substring(, ls_item.Length - ) + "\n";
- foreach (DataRow row in myRow)
- {
- for (i = ; i < cl; i++)
- {
- if (i == (cl - ))
- {
- ls_item += row[i].ToString() + "\n";
- }
- else
- {
- ls_item += row[i].ToString() + "\t";
- }
- }
- httpContext.Response.Output.Write(ls_item);
- ls_item = string.Empty;
- }
- httpContext.Response.Output.Flush();
- httpContext.Response.End();
- }
前端页面调用方法如下:
- <a href="Import.ashx" >导出Excel</a>
二,datatable导出Excel,保存到服务器上。方法如下:
- /// <summary>
- /// DataTable导出到Excel
- /// </summary>
- /// <param name="table">DataTable类型的数据源</param>
- /// <param name="file">需要导出的文件路径</param>
- public void dataTableToCsv(DataTable table, string file)
- {
- string title = "";
- FileStream fs = new FileStream(file, FileMode.OpenOrCreate);
- StreamWriter sw = new StreamWriter(new BufferedStream(fs), System.Text.Encoding.Default);
- for (int i = 0; i < table.Columns.Count; i++)
- {
- title += table.Columns[i].ColumnName + "\t"; //栏位:自动跳到下一单元格
- }
- title = title.Substring(0, title.Length - 1) + "\n";
- sw.Write(title);
- foreach (DataRow row in table.Rows)
- {
- string line = "";
- for (int i = 0; i < table.Columns.Count; i++)
- {
- line += row[i].ToString().Trim() + "\t"; //内容:自动跳到下一单元格
- }
- line = line.Substring(0, line.Length - 1) + "\n";
- sw.Write(line);
- }
- sw.Close();
- fs.Close();
- }
前端调用方法:
- <a onclick="Import()">导出Excel</a>
- function Import() {
- $.post("Import.ashx", {}, function (data) {
- alert("导出成功");
- });
- }
ashx导出dataTable为Excel的更多相关文章
- 简洁的导出 datatable到excel,不用组件
简洁的导出 datatable到excel var lines = new List<string>(); string[] columnNames = dataTable.Columns ...
- 使用NPOI导出DataTable到Excel
使用C#对DataTable导出到Excel是我们工作当中比较多用到的场景,微软提供了Microsoft.Office.Interop.Excel组件可以进行操作,但是该组件在数据量大的时候速度很慢, ...
- ClosedXML、DocumentFormat.OpenXml导出DataTable到Excel
在很多系统中都用到导出,使用过多种导出方式,觉得ClosedXML插件的导出简单又方便. 并且ClosedXML.DocumentFormat.OpenXml都是MIT开源. 首先通过 Nuget 安 ...
- NPOI通过DataTable导出和读取Excel
Excel导入及导出问题产生: 从接触.net到现在一直在维护一个DataTable导出到Excel的类,时不时还会维护一个导入类.以下是时不时就会出现的问题: 导出问题: 如果是asp.net,你得 ...
- 从DataTable高效率导出数据到Excel
首先从数据库读取数据到DataTable,这我就不提了,大家都明白.下面直接介绍如何从DataTable高效率导出数据到Excel中的方法,代码如下: using Microsoft.Office.I ...
- 使用Aspose将DataTable转Excel
0.准备工作 1.下载并引入Aspose.Cells 下载Aspose Cells并引入using Aspose.Cells 下面示例中用的是.net 3.0版本的Aspose Cells,编译环 ...
- 1.ASP.NET MVC使用EPPlus,导出数据到Excel中
好久没写博客了,今天特地来更新一下,今天我们要学习的是如何导出数据到Excel文件中,这里我使用的是免费开源的Epplus组件. 源代码下载:https://github.com/caofangshe ...
- 导出数据到Excel --使用ExcelReport有感
先看图,这是几个月前用NPOI写的导出数据到Excel,用了上百行代码,而且难控制,导出来也比较难看 excel打开的效果 下面是我用ExcelReport类库导出到Excel的操作 1.首先引用Ex ...
- 使用Open xml 操作Excel系列之二--从data table导出数据到Excel
由于Excel中提供了透视表PivotTable,许多项目都使用它来作为数据分析报表. 在有些情况下,我们需要在Excel中设计好模板,包括数据源表,透视表等, 当数据导入到数据源表时,自动更新透视表 ...
随机推荐
- node多人聊天室搭建
1.采用websocket: 为什么不用ajax的http:在用HTTP发送消息时,必须用一个新的TCP/IP连接.打开和关闭连接需要时间.此 外,因为每次请求都要发送HTTP头,所以传输的数据量也比 ...
- HTML5新增常用属性
一. 代码名称语义化的好处 1.能让搜索引擎更好的收录 2.对于特殊设备如盲人设备好解析 二.article和section的区别 article(文章):独立且能被外部引用 section(章节.段 ...
- highcharts 大数据 String+,StringBuilder,String.format运行效率比较
实现String字符串相加的方法有很多,常见的有直接相加,StringBuilder.append和String.format,这三者的运行效率是有差异的,String是final类型的,每次相加都会 ...
- 火狐开发----从头用到尾的cfx
此教程阐述了如何使用 SDK 开发一个简单的扩展. 准备 要想使用 SDK 开发 Firefox 的扩展,您首先需要 安装并激活 SDK.一旦您完成了以上步骤,您将会看到一个命令行窗口. 初始化一个空 ...
- iOS项目之使用开关控制日志输出的功能
最近一直在做sdk的项目,用户提出了一个需求,需要屏蔽sdk内部的日志输出.由于sdk内部的日志是为了调试,如果屏蔽了肯定不方便,所以研究了一下日志输出开关的功能. 在这里介绍两种实现方案:一种方案是 ...
- bui前端框架+yii整理
这个是做bui前端样式整合的时候记录的. 首先当然是要下载一个yii的源码,搭建起来. 第一步将bui的样式迁移到yii的样式目录中去 这里我在样式外面加了一个bui的文件夹,表示这个文件夹中存放的是 ...
- Linux笔记 #10# 用于支持Web应用开发&部署&配置的一些自定义脚本
索引 一.本地开发与测试相关脚本 1.startup.sh 2.shutdown.sh 3.catalina-out.sh 4.localhost_access_log.sh 5.上传本地文件到服务器 ...
- flutter sqflite
https://www.jianshu.com/p/88998af66e4b https://www.jianshu.com/p/7ac3ce2bc0c6
- MyPython
目录 Python,那些不可不知的事儿 Python简介 Python环境搭建 从Hello World开始 Python中的数据类型 函数 模块 面向对象 More Python,那些不可不知的事儿 ...
- 将一,二维数组转化为Excel格式
首先,我们来看一下一维数组的, 其代码可以如下: import numpy as np import pandas as pd x = pd.Series([1, 3, 5, np.nan]) pri ...