/// <summary>
/// 导出Excel CreateExcel(ds, "统计表.xls",new int[]{6,8});
/// </summary>
/// <param name="ds">DataSet ds</param>
/// <param name="FileName">文件名称</param>
/// <param name="iarry">new int[] {6,8};</param>
public void CreateExcel(DataSet ds, string FileName,int[] iarry)
{
FileName = HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8); HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName); StringBuilder colHeaders = new StringBuilder();
StringBuilder ls_item = new StringBuilder(); DataTable dt = ds.Tables[0];
DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
int i = 0;
int cl = dt.Columns.Count; //取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
for (i = 0; i < cl; i++)
{
if (i == (cl - 1))//最后一列,加n
{
colHeaders.Append(dt.Columns[i].Caption.ToString() + "\n");
}
else
{
colHeaders.Append(dt.Columns[i].Caption.ToString() + "\t");
} }
resp.Write(colHeaders.ToString());
//向HTTP输出流中写入取得的数据信息 //逐行处理数据
foreach (DataRow row in myRow)
{
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
for (i = 0; i < cl; i++)
{
if (iarry.Contains(i))
{
ls_item.Append("=\"" + Convert.ToString(row[i]) + "\"\t");
}
else
{
if (i == (cl - 1))//最后一列,加n
{
ls_item.Append(row[i].ToString() + "\n");
}
else
{
ls_item.Append(Convert.ToString(row[i]) + "\t");
}
}
} resp.Write(ls_item.ToString());
ls_item.Clear();
}
resp.End();
}

第二种

    /// <summary>
/// DataSetToExcel(this, ds, "人员信息表.xls", new string[] { "身份证", "账户" });
/// </summary>
/// <param name="page">this</param>
/// <param name="ds">DateSet</param>
/// <param name="fileName">xxx.xxx</param>
/// <param name="sarry">数字文本</param>
public void DataSetToExcel(Page page,DataSet ds,string fileName,string[] sarry )
{
page.Response.Clear();
page.Response.Buffer = true;
page.Response.Charset = "GB2312";
//page.Response.Charset = "UTF-8";
fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);
page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
page.Response.ContentType = "application/vnd.ms-excel";//设置输出文件类型为excel文件。
page.Response.ContentType = "";
page.EnableViewState = false; /// 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% StringBuilder sb = new StringBuilder();
int count = 0;
foreach (DataTable tb in ds.Tables)
{
sb.AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">");
sb.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">"); sb.AppendLine("<tr style=\"font-weight: bold; white-space: nowrap;\">");
foreach (DataColumn column in tb.Columns)
{
sb.AppendLine("<td>" + column.ColumnName + "</td>");
}
sb.AppendLine("</tr>"); foreach (DataRow row in tb.Rows)
{
sb.Append("<tr>");
foreach (DataColumn column in tb.Columns)
{
if (sarry.Contains(column.ColumnName))
sb.Append("<td style=\"vnd.ms-excel.numberformat:@\">" + row[column].ToString() + "</td>");
else
sb.Append("<td>" + row[column].ToString() + "</td>");
}
sb.AppendLine("</tr>");
count++;
}
sb.AppendLine("</table>");
} page.Response.Write(sb.ToString());
page.Response.End();
}

伪Excel导出新版代码的更多相关文章

  1. sourcegrid统计报表画法以及EXCEL导出内容代码完全版

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. js导入excel&导出excel

    Excel导入 html代码 <button style={{ color: '#1890ff', fontSize: '14px', cursor: 'pointer' }} onClick= ...

  3. Spring Boot下的一种导出Excel文件的代码框架

    1.前言 ​ 在Spring Boot项目中,将数据导出成Excel格式文件是常见的功能.与Excel文件导入类似,此处也用代码框架式的方式实现Excel文件导出,使得代码具有可重用性,并保持导出数据 ...

  4. 并发编程概述 委托(delegate) 事件(event) .net core 2.0 event bus 一个简单的基于内存事件总线实现 .net core 基于NPOI 的excel导出类,支持自定义导出哪些字段 基于Ace Admin 的菜单栏实现 第五节:SignalR大杂烩(与MVC融合、全局的几个配置、跨域的应用、C/S程序充当Client和Server)

    并发编程概述   前言 说实话,在我软件开发的头两年几乎不考虑并发编程,请求与响应把业务逻辑尽快完成一个星期的任务能两天完成绝不拖三天(剩下时间各种浪),根本不会考虑性能问题(能接受范围内).但随着工 ...

  5. [moka同学笔记]PHPexcel之excel导出和导入

    原案例来自http://www.sucaihuo.com/有修改 1.目录结构(文件不用解释,应该都可以看得懂,直接看代码)

  6. TP5.0源生Excel导出

    PHPExcel类在TP5里边并不能很好的兼容,使用起来很麻烦. 不像是tp3.2那样直接import()加进来就能new,因为它里边的命名空间找不到.总是说undefined class. 如果是使 ...

  7. java反射学习之二万能EXCEL导出

    一.EXCEL导出的实现过程 假设有一个对象的集合,现在需要将此集合内的所有对象导出到EXCEL中,对象有N个属性:那么我们实现的方式是这样的: 循环这个集合,在循环集合中某个对象的所有属性,将这个对 ...

  8. 自己写的java excel导出工具类

    最近项目要用到excel导出功能,之前也写过类似的代码.因为这次项目中多次用到excel导出.这次长了记性整理了一下 分享给大伙 欢迎一起讨论 生成excel的主工具类: public class E ...

  9. Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc

    Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...

随机推荐

  1. 回顾: Python面向对象三大特性

    继承 待整理^_^ 封装 待整理^_^ 多态 待整理^_^

  2. git原理:pack打包

    git向磁盘中存储对象使用“松散(loose)”对象格式.比如文件a.txt第一个版本大小是10k,第二个版本向其中添加了一行代码,假如此时文件为10.1k,那么第二个版本会重新产生一个1.1k的文件 ...

  3. python 获取当前运行的 class 和 方法的名字

    # coding=utf-8 import sys class Hello(): def hello(self): print('the name of method is ## {} ##'.for ...

  4. (2.3)学习笔记之mysql基础操作(表/库操作)

    本系列学习笔记主要讲如下几个方面: 本文笔记[六:表操作--线上可以直接删除表吗?] 附加:库操作 [1]创建制定字符集的数据库 需求描述: 在创建DB的时候指定字符集. 操作过程: 1.使用crea ...

  5. STL之空间配置器

    在前面很多随笔里都有提到new对象是先分配内存然后初始化对象,主要是对operator new和placement new的使用 在SGI STL中内存的分配和初始化是分开的,分配内存是使用类模板,模 ...

  6. 001infor record 计划时间取值增强-20150622

    ZMD_MRP_PARAMETERS 3000公司下工厂跑MRP时,如果为外购则通过外挂表取infor record计划交期. METHOD if_ex_md_mrp_parameters~adjus ...

  7. PyQt4打包exe文件

    使用到工具pyinstaller pip install pyinstaller 使用指令打包,其中xxx.ico为需要的图标,xxx.py为要打包的py文件 pyinstaller -w --ico ...

  8. LeetCode:路径总和【112】

    LeetCode:路径总和[112] 题目描述 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和. 说明: 叶子节点是指没有子节点的节点. 示例 ...

  9. HASH、HASH函数、HASH算法的通俗理解

    之前经常遇到hash函数或者经常用到hash函数,但是hash到底是什么?或者hash函数到底是什么?却很少去考虑.最近同学去面试被问到这个问题,自己看文章也看到hash的问题.遂较为细致的追究了一番 ...

  10. token的生成和应用

    token的生成和应用 接口特点汇总: 1.因为是非开放性的,所以所有的接口都是封闭的,只对公司内部的产品有效: 2.因为是非开放性的,所以OAuth那套协议是行不通的,因为没有中间用户的授权过程: ...