//导出
private string outFileName = "";

private string fullFilename = "";
private Workbook book = null;
private Worksheet sheet = null;

private void AddHeader(string[] dt)
{
Cell cell = null;

int col = 0;
foreach (string item in dt)
{
cell = sheet.Cells[0, col];
cell.PutValue(item);
col++;
}

}

private void AddBody(DataTable dt, params int[] cl)
{
int cls = 0;
foreach (int item in cl)
{
for (int r = 0; r < dt.Rows.Count; r++)
{
sheet.Cells[r + 1, cls].PutValue(dt.Rows[r][item].ToString());
}
cls++;
}
}

public string Export(DataTable dt)
{
try
{
fullFilename = "Excel";
book = new Workbook();
//book.Open(tempfilename);
sheet = book.Worksheets[0];
sheet.Name = "数据";

//sheet.Name = sheetName;
//AddTitle(title, dt.Columns.Count);
AddHeader(new string[] { "列1", "列2", ...});
AddBody(dt, 列的个数);
sheet.AutoFitColumns();
//sheet.AutoFitRows();
fileName = System.DateTime.Now.ToString("yyyymmddhhmmss") + ".xls";
string SaveFilePath = @"\DownLoadFile\" + fileName;
book.Save(System.AppDomain.CurrentDomain.BaseDirectory + SaveFilePath);
this.fullFilename = System.AppDomain.CurrentDomain.BaseDirectory + SaveFilePath;
//byte[] array = File.ReadAllBytes(fullFilename);
FileStream fs = new FileStream(fullFilename, FileMode.Open);
byte[] data = new byte[fs.Length];
fs.Read(data, 0, data.Length);

BinaryWriter w = new BinaryWriter(fs);
MemoryStream ms = new MemoryStream(data);
w.Write(ms.ToArray());
w.Close();
w.Dispose();

fs.Close();
fs.Dispose();
//HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
//HttpContext.Current.Response.BinaryWrite(ms.ToArray());
//HttpContext.Current.Response.End();
ms.Close();
ms.Dispose();
return fullFilename;
}
catch (Exception e)
{
return string.Empty;
}
}

调用时只需要Export(DataTable dt)这个方法就行

.NET导出excel方法的更多相关文章

  1. .Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构)

    .Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) [原文地址] 通过MVC控制器导出导入Excel文件(可用于java SSH架构)   public cl ...

  2. C# Datatable导出Excel方法

    C# 导出Excel方法  先引用下System.IO;System.data; 具体函数如下: public static bool ExportCSV(DataTable dt, string f ...

  3. asp.netDataTable导出excel方法(2)

    上一篇文章提到看到同事导出excel的新方法,感觉比上一篇简单得多,所以想贴上来,与大家分享. 在后台拼数据,都是用的htmltable标签的写法: string line = "text- ...

  4. .NET导入导出Excel方法总结

    最近,应项目的需求,需要实现Excel的导入导出功能,对于Web架构的Excel导入导出功能,比较传统的实现方式是: 1)导入Excel:将Excel文件上传到服务器的某一文件夹下,然后在服务端完成E ...

  5. 公共POI导出Excel方法--java

    最早开始的时候做过一些数据Excel导出的功能,但是到后期每一次导出都需要写一些差不多类似的代码,稍微研究了一下写了个公共的导出方法. 这里用的是POI,然后写成了一个公共类,传入设置好格式的数据,就 ...

  6. Web C# 导出Excel 方法总结

    方法1:微软推荐服务器需安装Excel型 依赖: 软件:Office Excel 2007-2013 引用:Microsoft Office 14.0 Object Library 1.1 数据准备 ...

  7. PHP导入导出Excel方法

    看到这篇文章的时候,很是惊讶原作者的耐心,虽然我们在平时用的也 有一些,但没有作者列出来的全,写excel的时候,我用过pear的库,也用过pack压包的头,同样那些利用smarty等作的简单替换xm ...

  8. c# 导入导出excel方法封装

    在很多项目中,都会使用到文件的上传下载等,为了方便,封装了一个帮助类,每次直接拿过来使用就可以了,下面是封装的类和使用方法. using Common.AttributeHelper; using N ...

  9. c#基础学习(0629)之导出Excel方法

    给予NPOI插件的方法,所以首先要下载NPOI插件:vs项目中点击“项目”==>“管理NoGet程序包”==>搜索“NPOI”然后下载==>using引入Controller代码: ...

  10. PHP导入导出Excel方法小结

    基本上导出的文件分为两种: 1:类Excel格式,这个其实不是传统意义上的Excel文件,只是因为Excel的兼容能力强,能够正确打开而已.修改这种文件后再保存,通常会提示你是否要转换成Excel文件 ...

随机推荐

  1. asp弹出层

    asp弹出层 <style type="text/css"> html, body { height: %; width: %; } .white_content { ...

  2. jsp 路径问题

    <script   type="text/javascript"   src="<%=ApplicationContextUtil.getBasePath(r ...

  3. .net开发ActiveX控件

    我估计有些朋友不清楚ActiveX控件,但这篇博客不是来解释这些概念的.如果你对ActiveX的概念不清楚,请参考这里: http://baike.baidu.com/view/28141.htm 这 ...

  4. HTML5新增的结构元素

    HTML5的结构 一:新增的主体结构元素 在HTML5中,为了使文档的结构更加清晰明确,追加了几个与页眉,页脚内容区块等文档结构相关联的结构元素. 1.1article元素 article元素代表文档 ...

  5. 项目一:第一天 1、项目概述 2、环境搭建(重点) 3、Jquery Easyui 前端UI框架 4、Jquery Ztree 树形插件使用

    1.项目环境 注:添加jar包直接在common_parent里面添加. 搭建数据库 create tablespace bos317space datafile 'c:\ bos317.dbf'   ...

  6. R语言:文本(字符串)处理与正则表达式

    R语言:文本(字符串)处理与正则表达式 (2014-03-27 16:40:44) 转载▼ 标签: 教育 分类: R 处理文本是每一种计算机语言都应该具备的功能,但不是每一种语言都侧重于处理文本.R语 ...

  7. 2、perl模块查询安装否

    1.Perl 中每个包有一个单独的符号表,定义语法为:package mypack; 此语句定义一个名为 mypack 的包,在此后定义的所有变量和子程序的名字都存贮在该包关联的符号表中,直到遇到另一 ...

  8. p2661 信息传递(Tarjan模板)

    传送门 题目 有 nnn 个同学(编号为 111 到 nnn )正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为 iii 的同学的信息传递对象是编号为 TiT_iTi​ ...

  9. Sharding-JDBC 使用入门和基本配置

    一.什么是Sharding-JDBC Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务.它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理 ...

  10. kolla-build常用命令行详解

    --base-image 用于指定使用自己定制的基础镜像,不用官方网站的样例如下:kolla-build --base-image registry.access.redhat.com/rhel7/r ...