//导出
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. /*带动画效果的hover*/

    <!DOCTYPE html> /*带动画效果的hover*/ <html lang="en"> <head> <meta charset ...

  2. vue 上传二进制图片

    1.前段代码 <el-form-item label="证件照片" prop="idImage"> <input @change='ss' t ...

  3. R: 数据结构、数据类型的描述。

    ################################################### 问题:数据结构..类型  18.4.27 有哪些数据结构.类型??  各自有什么特点? 解决方案 ...

  4. Umbraco Examine Search (Lucene.net) french accent

    在项目中使用Umbraco examine search 来search 法语网站时,客户有一个需求,就是 当search  expérience 和 experience 时,需要返回一样的结果. ...

  5. C#中的?问号用法总结

    在C#中有个较为重要,而常被一些人忽视的符号——问号(?).在这里整理一下它在C#的几种情况: 可空类型修饰符“T?”:可空类型的基础类型可以是任何非可空值类型或任何具有struct约束的类型参数,但 ...

  6. 5.SSRF服务器端请求伪造

    SSRF(服务端请求伪造):是一种由攻击者构造形成由服务端发起请求的一个安全漏洞. 一般情况下,SSRF攻击的目标是从外网无法访问的内部系统.(正是因为它是由服务端发起的,所以它能够请求到与它相连而与 ...

  7. 面试题17:打印1到最大的n位数

    // 面试题17:打印1到最大的n位数 // 题目:输入数字n,按顺序打印出从1最大的n位十进制数.比如输入3,则 // 打印出1.2.3一直到最大的3位数即999. 解题思路: 首先是一个大陷阱,n ...

  8. 【Qt官方例程学习笔记】Application Example(构成界面/QAction/退出时询问保存/用户偏好载入和保存/文本文件的载入和保存/QCommandLineParser解析运行参数)

    The Application example shows how to implement a standard GUI application with menus, toolbars, and ...

  9. Pillow的安装和使用

    需要把一段文字转换成图片,我找到了PIL(Python Imaging Library)库,专门干这个用的.还有一个Pillow是“friendly PIL fork”,于是我选择了后者. 安装过程稍 ...

  10. jzoj3208. 【JSOI2013】编程作业(kmp)

    题面 Description Will相信,很多同学都有过这样的经历:大牛已经写好了编程作业,而作为菜鸟的自己不会写怎么办呢?拿大牛的代码抄一下嘛!但是提交一模一样的作业是不是不太好?于是就改一改变量 ...