使用内存流导出Excel
public MemoryStream MemoryStreamDeiveFlowInfoaging(DataTable Table)
{
Dictionary<int , string> KeyValue = new Dictionary<int,string>();
for (int i = 0; i < Table.Columns.Count; i++)
{
KeyValue.Add(i,Table.Columns[i].ColumnName);
}
NPOI.HSSF.UserModel.HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();//创建一个工作簿
NPOI.SS.UserModel.ISheet isheet = workbook.CreateSheet(DateTime.Now.ToString("yyyyMMddHHmmss"));//在工作簿创建一个选项卡
NPOI.SS.UserModel.IRow irow = isheet.CreateRow(0);//在第0行开始写入键值
for (int i = 0; i < KeyValue.Keys.Count; i++)
{
irow.CreateCell(i).SetCellValue(KeyValue.Values.ToArray()[i]);
}
//现在开始将DataTable数据写入
for (int ii = 0; ii < Table.Rows.Count; ii++)
{
NPOI.SS.UserModel.IRow irow2 = isheet.CreateRow(ii + 1);//第0行已经有数据所以加1
for (int iii = 0; iii < Table.Columns.Count; iii++)
{
irow2.CreateCell(iii).SetCellValue(Convert.ToString(Table.Rows[ii][iii]));
}
}
//写入内存
System.IO.MemoryStream io = new MemoryStream();
//释放
using (io = new MemoryStream())
{
workbook.Write(io);//在工作簿输出流
byte[] arratByte = io.ToArray();
io.Write(arratByte, 0, arratByte.Length); ;//在工作簿写入流
io.Flush();
}
return io;
}
2017年3月16日记录
/// 设置内存流响应格式编码
Response.Charset = "UTF-8";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
Response.ContentType = "application / vnd.openxmlformats - officedocument.spreadsheetml.sheet";// "application/ms-excel/msword";
Response.AddHeader("Content-Disposition", "attachment;fileName=" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");
Response.BinaryWrite(MemoryStreamDeiveFlowInfoaging(Table).ToArray());
Response.Write(new EmptyResult());
使用内存流导出Excel的更多相关文章
- asp.net以流导出Excel
废话不多说,直接上代码 这是点击导出的事件函数,因为我是从前端获取的Table的json数据,所以需要转换一下,大家直接用查询出来的DataTable即可 protected void bt_expo ...
- asp.net MVC 文件流导出Excel
<form id="FormEsExcel" action="/**/ExportEsExcelData" method="post" ...
- 前端接收后端文件流导出excel文档遇到的问题
先上代码: Vue.prototype.download = function(oUrl, filename) { this.axios .get(oUrl, { responseType: 'arr ...
- vue 后台获取文件流导出excel文件
let params = { compStartTm: Date.parse(this.searchForm.compStartTm) / 1000, compEndTm: Date.parse(th ...
- 导出EXCEL(转转)
)) content.AppendFormat("<td style='vnd.ms-excel.numberformat:#, ...
- C#导出EXCEL(DataTable导出EXCEL)
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.I ...
- 使用Magicodes.IE快速导出Excel
前言 总是有很多朋友咨询Magicodes.IE如何基于ASP.NET Core导出Excel,出于从框架的体验和易用性的角度,决定对Excel的导出进行独立封装,以便于大家更易于使用,开箱即用. 注 ...
- fputcsv 导出excel,解决内存、性能、乱码、科学计数法问题
在PHP的日常开发中,时常会需要导出 excel ,一般我们会使用 PHPExcel ,性能强大,但是在数据量大的时候,phpexcel 性能差.内存溢出等各种不可控问题就会出现.因此,如果对导出样式 ...
- 用NOPI将图片二进制流导出到Excel
这儿采取的是将图片的二进制流导出到Excel,直接上代码: /// <summary> /// DataTable导出到Excel的MemoryStream /// </summar ...
随机推荐
- buf.write()
buf.write(string[, offset[, length]][, encoding]) string {String} 需要被写入到 Buffer 的字节 offset {Number} ...
- NOIP2018提高组省一冲奖班模测训练(一)
比赛链接 https://www.51nod.com/contest/problemList.html#!contestId=72&randomCode=147206 这次考试的题非常有质量 ...
- Spring核心技术(五)——Spring中Bean的作用域
前文概述了Spring的容器,Bean,以及依赖的一些信息,本文将描述一下Bean的作用域 Bean的作用域 当开发者定义Bean的时候,同时也会定义了该如何创建Bean实例.这些具体创建的过程是很重 ...
- @RequestParam 注解的使用----https://blog.csdn.net/lovincc/article/details/72800117
- 转载 - Struts2 拦截器详细配置过程
出处:http://www.blogjava.net/zzzlyr/archive/2009/10/12/297998.html Struts2 拦截器详细配置过程 1:所有拦截器的超级接口Inter ...
- UVa - 12617 - How Lader
先上题目: How Lader Lader is a game that is played in a regular hexagonal board (all sides equal, all ...
- CentOS 安装Oracle 11g R2
CentOS 安装Oracle 11g R2 学习了-/ https://www.osyunwei.com/archives/5445.html
- gem5: 使用ruby memory system中的mesh结构 出现AssertionError错误
问题:在使用ruby memory system中的mesh结构測试时,出现例如以下错误: Traceback (most recent call last): File "<stri ...
- windows bat命令 开启关闭Oracle服务
0.吐槽 单位发的ThinkPad T61.太弱小了. 问题是我去百度下T61,发现它好贵好贵.真心无力吐槽.还不如给我发台外星人,廉价点的. . Oracle一开就内存就不够了.所以绝对不能让它开机 ...
- ObjectiveC开发教程--字符串的连接
NSString *type = @"hello"; NSString *subtype = @"good"; NSString *typesub = [NSS ...