epplus excel数据导出(数据量有点大的情况) Web和Client
Asp.net MVC后台代码
public ActionResult Export()
{ OfficeOpenXml.ExcelPackage ep = new OfficeOpenXml.ExcelPackage();
OfficeOpenXml.ExcelWorkbook wb = ep.Workbook;
OfficeOpenXml.ExcelWorksheet ws = wb.Worksheets.Add("我的工作表");
////配置文件属性
//wb.Properties.Category = "类别";
//wb.Properties.Author = "作者";
//wb.Properties.Comments = "备注";
//wb.Properties.Company = "公司";
//wb.Properties.Keywords = "关键字";
//wb.Properties.Manager = "管理者";
//wb.Properties.Status = "内容状态";
//wb.Properties.Subject = "主题";
//wb.Properties.Title = "标题";
//wb.Properties.LastModifiedBy = "最后一次保存者";
// var list = GetList();
int x = ;
for (int i = ; i < 3; i++)
{
//if (x == 1000000)
//{
// ws = wb.Worksheets.Add("我的工作表" + Guid.NewGuid().ToString());
// x = 0; //}
for (int j = ; j <= ; j++)
{ ws.Cells[(x + ), j].Value = DateTime.Now.ToString(); }
x++; }
//写数据
//ws.Cells[1, 1].Value = "Hello"; //ws.Cells[1, 1].Style.Numberformat.Format = "yyyy-MM-dd"; //ws.Column(1).Width = 40;//修改列宽
//ws.Cells["B1"].Value = "World";
//ws.Cells[3, 3, 3, 5].Merge = true;
//ws.Cells[3, 3].Value = "Cells[3, 3, 3, 5]合并";
//ws.Cells["A4:D5"].Merge = true; //ws.Cells["A4:D5"].Style.HorizontalAlignment = OfficeOpenXml.Style.ExcelHorizontalAlignment.Center;//居中 //ws.Cells["A4"].Value = "Cells[\"A4:D5\"]合并";
//写到客户端(下载)
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=FileFlow.xlsx");
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
byte[] data=ep.GetAsByteArray(); Response.AddHeader("Content-Length", data.Length.ToString());
Response.BinaryWrite(data);
//ep.SaveAs(Response.OutputStream); 第二种方式
Response.Flush();
Response.End();
return null; }
FileInfo newFile = new FileInfo(@"d:\test.xlsx");
if (newFile.Exists)
{
newFile.Delete();
newFile = new FileInfo(@"d:\test.xlsx");
}
//using (ExcelPackage package = new ExcelPackage(newFile))
//{
// ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("test");
// worksheet.Cells[1, 1].Value = "名称";
// worksheet.Cells[1, 2].Value = "价格";
// worksheet.Cells[1, 3].Value = "销量"; // worksheet.Cells[2, 1].Value = "大米";
// worksheet.Cells[2, 2].Value = 56;
// worksheet.Cells[2, 3].Value = 100; // worksheet.Cells[3, 1].Value = "玉米";
// worksheet.Cells[3, 2].Value = 45;
// worksheet.Cells[3, 3].Value = 150; // worksheet.Cells[4, 1].Value = "小米";
// worksheet.Cells[4, 2].Value = 38;
// worksheet.Cells[4, 3].Value = 130; // worksheet.Cells[5, 1].Value = "糯米";
// worksheet.Cells[5, 2].Value = 22;
// worksheet.Cells[5, 3].Value = 200; // package.Save();
//}
OfficeOpenXml.ExcelPackage ep = new OfficeOpenXml.ExcelPackage(newFile);
OfficeOpenXml.ExcelWorkbook wb = ep.Workbook;
OfficeOpenXml.ExcelWorksheet ws = wb.Worksheets.Add("我的工作表");
//配置文件属性
//wb.Properties.Category = "类别";
//wb.Properties.Author = "作者";
//wb.Properties.Comments = "备注";
//wb.Properties.Company = "公司";
//wb.Properties.Keywords = "关键字";
//wb.Properties.Manager = "管理者";
//wb.Properties.Status = "内容状态";
//wb.Properties.Subject = "主题";
//wb.Properties.Title = "标题";
//wb.Properties.LastModifiedBy = "最后一次保存者";
// var list = GetList();
int x = ;
for (int i = ; i < ; i++)
{
if (x == )
{
ws = wb.Worksheets.Add("我的工作表" + Guid.NewGuid().ToString());
x = ; }
for (int j = ; j <= ; j++)
{ ws.Cells[(x + ), j].Value = DateTime.Now.ToString();
Console.WriteLine((i+));
}
x++; }
ep.Save();
Client的版本亲测至少可导出千万级别的数据,Web版本要看服务器内存配置。。
epplus下载路径: http://epplus.codeplex.com/
epplus excel数据导出(数据量有点大的情况) Web和Client的更多相关文章
- NPOI读取excel文件导出数据, 而此时文件正在打开中抛异常怎么办
项目中需要用到一些数值表格, 方便起见都是用excel来的. 而如果excel正打开中, 直接使用npoi制作的工具来导出数据的话, 在这一行将会异常: workbook = new XSSFWork ...
- 使用PHP导入Excel和导出数据为Excel文件
有时需要将Excel表格的数据导入到mysql数据库中,我们使用PHP的一个开源项目PHP-ExcelReader可以轻松实现Excel的导入.另外将mysql数据导出为Excel与本站上篇文章中导出 ...
- kettle 使用excel模板导出数据
通过excel进行高速开发报表: 建设思路: 1.首先制订相关的execl模板. 2.通过etl工具(kettle)能够高速的 将数据库中的数据按excel模板导出成新的excel就可以. 当中ket ...
- Aspose.cell中的Excel模板导出数据
//Excel模板导数据(Eexcel中根据DataTable中的个数,给多个Sheet中的模板赋值) public void DataSetToManyExcel(string fileName, ...
- java实现excel表格导出数据
/** * 导出清单 eb中 firstRow(EntityBean) 列表第一行数据,键值对(不包含序号)例:("name","姓名") * data(Ent ...
- Net 自定义Excel模板导出数据
转载自:http://www.cnblogs.com/jbps/p/3549671.html?utm_source=tuicool&utm_medium=referral 1 using Sy ...
- C# Winform Excel的导出,根据excel模板导出数据
namespace dxhbskymDemo { public partial class ExcelForm : DevExpress.XtraEditors.XtraForm { public E ...
- sql server 大数据, 统计分组查询,数据量比较大计算每秒钟执行数据执行次数
-- 数据量比较大的情况,统计十分钟内每秒钟执行次数 ); -- 开始时间 ); -- 结束时间 declare @num int; -- 结束时间 set @begintime = '2019-08 ...
- 大数据学习----day27----hive02------1. 分桶表以及分桶抽样查询 2. 导出数据 3.Hive数据类型 4 逐行运算查询基本语法(group by用法,原理补充) 5.case when(练习题,多表关联)6 排序
1. 分桶表以及分桶抽样查询 1.1 分桶表 对Hive(Inceptor)表分桶可以将表中记录按分桶键(某个字段对应的的值)的哈希值分散进多个文件中,这些小文件称为桶. 如要按照name属性分为3个 ...
随机推荐
- CentOS 6.5下二进制安装 MySQL 5.6
CentOS 6.5 二进制安装MySQL 5.6 1:查看系统版本 [root@10-4-5-9 mysql]# cat /etc/redhat-release CentOS release 6.5 ...
- MySQL 官方文档
MySQL 5.6 Reference Manual Preface and Legal Notices 1 General Information 2 Installing and Upgradin ...
- taro 更新
更新 Taro 提供了更新命令来更新 CLI 工具自身和项目中 Taro 相关的依赖 更新 Taro CLI 工具 # taro $ taro update self # npm npm i -g @ ...
- 关于SQLite在Android开发中的知识点总结
一.存放位置 1.内部存储-放在 data/data 底下, 也就是内部存储, 里面的文件以及文件夹是私有的, 其他 app 不能访问, 也随着 app 卸载而删除; 2.放在 sd 卡里面, 如果设 ...
- chrome 设置启动时打开特定一组网页
chrome 设置启动时打开特定一组网页 CreateTime--2018年4月25日08:57:00 Author:Marydon 1.使用场景 经常有一些必用的网站,每天打开chrome都要依 ...
- CSerialPort串口类最新修正版(解决关闭死锁问题)2014-01-11
这是一份优秀的类文件,好多的地方值得我们学习,具体在多线程,事件,自定义消息,类的封装方面等等.Remon提供的串口类网址为:http://codeguru.earthweb.com/network/ ...
- Android 5.0最应该实现的8个期望
毫无疑问,Android 5 将是令人兴奋的操作系统,因为 Android4.0 至 4.4 版本之间并没有显著的差异,显然谷歌会在 5.0 版本中进行一些较大幅度的革新.那么,代号为“柠檬芝士蛋糕” ...
- const与#define、结构体对齐、函数重载name mangling、new/delete 等
一.bool 类型 逻辑型也称布尔型,其取值为true(逻辑真)和false(逻辑假),存储字节数在不同编译系统中可能有所不同,VC++中为1个字节. 声明方式:bool result; result ...
- AndroidStudio项目提交(更新)到github最具体步骤
在使用studio开发的项目过程中有时候我们想将项目公布到github上.曾经都是用一种比較麻烦的方式(cmd)进行提交.近期发现studio事实上是自带这样的功能的,最终能够摆脱命令行了. 由于自己 ...
- 使用 hibernate validator 进行表单验证
1 引入依赖,如果是 Maven 项目,仅需要添加如下依赖.官网请查看http://hibernate.org/validator/documentation/getting-started/ < ...