//导出
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. atoi函数实现

    #include int my_atoi(const char *str) { int result; char sign; for (; str && isspace(*str); ...

  2. Mysql 增量备份和全量备份

    全量备份: # vim /root/DBFullyBak.sh //添加以下内容 #!/bin/bash # Program # use mysqldump to Fully backup mysql ...

  3. map-reduce的八个流程

    下面讲解这八个流程  Inputformat-->map-->(combine)-->partition-->copy&merge-->sort-->red ...

  4. R: 关于 table 函数的应用

    ################################################### 问题:关于 table 函数   18.5.9 来一个关于 table 函数的例子,说明tabl ...

  5. 11、比对软件STAR(https://github.com/alexdobin/STAR)

    转载:https://mp.weixin.qq.com/s?__biz=MzI1MjU5MjMzNA==&mid=2247484731&idx=1&sn=b15fbee5910 ...

  6. 日记(18)-20141008---PHP是做什么的

    1,PHP 是一种用来制作动态网页的服务器端脚本语言.2,因为PHP脚本是写在 HTML 文档中的,你不必用特殊的编辑器来创建页面.3,php 是一种服务器端的脚本语言,一般用来做网站. (感言,我太 ...

  7. invalid loc header的解决办法

    eclipse 运行程序,报invalid loc header,网上一查,删除maven仓库(默认位于%USERPROFILE%\.m2\repository\org)中的下载包,然后重新下载.

  8. Extjs知识点汇总

    自定义渲染单元格内容 { name:"device.flag", header: '确认', dataIndex: 'flag', width:50, renderer: func ...

  9. 实用掌中宝--HTML&CSS常用标签速查手册 PDF扫描版

    实用掌中宝--HTML&CSS常用标签速查手册 内容推荐: 本书第一篇以语法和实例相结合的形式,详细讲解了HTML语言中各个元素及其属性的作用.语法和显示效果:第二篇从CSS基本概念开始,分别 ...

  10. 实现html页面只自动跳转一次

    function show(){ var  value= sessionStorage.getItem("flg"); if(value==null || value==undef ...