Epplus导出Excel(DataTable)
1.先将dataTable转换成流
public Stream DataTableToExcel(DataTable dataTable, string[] columns, string sheetName)
{
try
{
using (ExcelPackage pck = new ExcelPackage())
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add(sheetName);
ws.Cells["A1"].LoadFromDataTable(dataTable, true);
for (int i = ; i <= columns.Length; i++) //设置excel列名
{
using (ExcelRange rng = ws.Cells[, i])
{
rng.Style.Font.Bold = true;
rng.Value = columns[i - ];
}
}
MemoryStream ms = new MemoryStream();
pck.SaveAs(ms);
ms.Flush();
ms.Position = ;//指定当前流的位置从0开始
return ms;
}
}
catch (Exception ex)
{
throw ex;
}
}
设置Excel单元格格式 ws.Column(1).Style.Numberformat.Format = "YYYY-MM-DD HH:mm:ss"
保存excel文件
public void ExportExcel(DataTable dt, string[] columns, string sheetName, DownResult result)
{ Stream stream = DataTableToExcel(dt, columns, sheetName);
ExcelPackage package = new ExcelPackage(stream);
fileName = sheetName + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";
filePath = HttpContext.Current.Server.MapPath("~/UploadFile/");//文件保存地址
if (!Directory.Exists(filePath))//如果不存在就创建file文件夹
{
Directory.CreateDirectory(filePath);
}
package.SaveAs(new FileInfo(filePath + fileName)); }
2.直接将dataTable 保存为Excel文件
public void DataTableToExcel(DataTable dtResult,string sheetName)
{
string path = AppDomain.CurrentDomain.BaseDirectory + DateTime.Now.ToString("yyyyMMdd") + ".xlsx";
FileInfo file = new FileInfo(path);
using (ExcelPackage pck = new ExcelPackage(file))
{
ExcelWorksheet w = pack.Workbook.Worksheets[sheetName];
if (w != null && w.Name.Equals(sheetName)) //判断是否存在该sheet表,存在则删除
pack.Workbook.Worksheets.Delete(w);
ExcelWorksheet ws = pack.Workbook.Worksheets.Add(sheetName);
ws.Cells["A1"].LoadFromDataTable(dtResult, true); //第二个参数设置为true则显示datable表头
pck.Save();
}
}
Epplus导出Excel(DataTable)的更多相关文章
- C# NPOI导出Excel和EPPlus导出Excel比较
系统中经常会使用导出Excel的功能. 之前使用的是NPOI,但是导出数据行数多就报内存溢出. 最近看到EPPlus可以用来导出Excel,就自己测了下两者导出上的差异. NPIO官网地址:http: ...
- C# NPOI导出Excel和EPPlus导出Excel
转自:http://www.cnblogs.com/tanpeng/p/6155749.html 系统中经常会使用导出Excel的功能.之前使用的是NPOI,但是导出数据行数多就报内存溢出. 最近看到 ...
- C# 使用Epplus导出Excel [5]:样式
C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...
- C# 使用Epplus导出Excel [4]:合并指定行
C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...
- C# 使用Epplus导出Excel [3]:合并列连续相同数据
C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...
- C# 使用Epplus导出Excel [2]:导出动态列数据
C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...
- C# 使用Epplus导出Excel [1]:导出固定列数据
C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...
- C# EPPlus导出EXCEL,并生成Chart表
一 在negut添加EPPlus.dll库文件. 之前有写过直接只用Microsoft.Office.Interop.Excel 导出EXCEL,并生成Chart表,非常耗时,所以找了个EPPlus ...
- C# EPPlus 导出Excel
一.Excel导出帮助类 /*引用NuGet包 EPPlus*/ /// <summary> /// Excel导出帮助类 /// </summary> public clas ...
随机推荐
- Socket编程(c语言示例)
转自:http://blog.csdn.net/dxpqxb/article/details/8166423 前言 Socket可以看成在两个程序进行通讯连接中的一个端点,是连接应用程序和网络驱动程序 ...
- Sublime for MacOS 使用技巧
1.创建软链接,使用命令直接打开sublime编辑器 ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/sub ...
- hbuilder h5 原生socket
在网上搜索了很多资料都不行,要么就是不能发送数据,要么就不能接收数据,使用如下的方法可以接收数据,一个一个字节接收: 有部分限制是需要明确知道要接收多少个字节,否则容易出现接收异常.. var tes ...
- 精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!(转载)
Anagrams of string(带有重复项) 使用递归.对于给定字符串中的每个字母,为字母创建字谜.使用map()将字母与每部分字谜组合,然后使用reduce()将所有字谜组合到一个数组中,最基 ...
- 从头开始学eShopOnContainers——Visual Studio 2017环境配置
一.安装和配置Docker环境 1.安装Docker CE for Windows 从官方网站下载并安装,https://docs.docker.com/docker-for-windows/inst ...
- thedao
TheDao 简化版解释 the Dao 合约 contract f1{ function transfer() { if (acccount[m]>=100) { m.send(100) ac ...
- 动态内存分配存在的问题(内存空洞)------c++程序设计原理与实践(进阶篇)
new的问题究竟在哪里呢?实际上问题出在new和delete的结合使用上.考察下面程序中内存分配和释放过程: while(1){ Big* p=new big; //...... Small* n1= ...
- 关于命名空间 namespace的总结
namespace 有作用的类型 类.函数.常量关键字namespace必须在所有代码之前 除用于编码的declare语句 namespace Myproject; const A = 1; cla ...
- [Algorithm]图
一.图的算法 邻接矩阵表示的数据结构 1 #define INFINITY INT_MAX // 无穷大 2 #define MAX_VERTEX_NUM 20 // 限制顶点最大数值为20个 3 # ...
- Bitnami WordPress如何修改MySQL root的默认密码?
Bitnami WordPress安装完毕后,MySQL root的默认密码为空,我们应该马上修改MySQL密码,在开始菜单里面,进入Bitnami ,启动控制台程序,随后输入: mysql -u r ...