MVC 导出Execl 的总结几种方式 (三)
第三种方式呢,就是借用第三方插件 NPOI 来实现Execl 导出
第一步:在NuGut包中下载NPOI 组件
第二步:编辑控制器代码
public FileResult ExcelNewKeyPromotion()
{
string title = "Market Sensing-Key Promotion"; var model = GetList(); NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1"); IFont font = book.CreateFont();
font.FontHeightInPoints = ;
font.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.Bold;//加粗 IFont font1 = book.CreateFont();
font1.FontHeightInPoints = ;
font1.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.Bold;//加粗 NPOI.SS.UserModel.IRow row0 = sheet1.CreateRow();
SetCellRangeAddress(sheet1, , , , ); //设置夸单元格
ICellStyle cellstyle = book.CreateCellStyle();//设置垂直居中格式
cellstyle.Alignment = HorizontalAlignment.Center; //设置水平居中
cellstyle.VerticalAlignment = VerticalAlignment.Center;//垂直居中
cellstyle.SetFont(font); //设置字体
ICell cell = row0.CreateCell();
cell.CellStyle = cellstyle;
cell.SetCellValue(title); NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(); ICellStyle Rowstyle = book.CreateCellStyle();//设置垂直居中格式
Rowstyle.VerticalAlignment = VerticalAlignment.Center;//垂直居中
Rowstyle.Alignment = HorizontalAlignment.Center; //设置水平居中
Rowstyle.FillPattern = FillPattern.SolidForeground;
Rowstyle.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Grey25Percent.Index; //设置背景色
Rowstyle.SetFont(font1);
var lstTitle = new List<string> { "Year", "Week", "Date"};
for (int i = ; i < lstTitle.Count(); i++)
{
ICell cellRow1 = row1.CreateCell(i);
cellRow1.CellStyle = Rowstyle;
cellRow1.SetCellValue(lstTitle[i]);
} // row1.CreateCell(12).SetCellValue("Photo");
ICell cellRow2 = row1.CreateCell();
cellRow2.CellStyle = Rowstyle;
cellRow2.SetCellValue("Photo");
Rowstyle.SetFont(font1);
SetCellRangeAddress(sheet1, , , , ); //设置夸单元格 int rowIndex = ;
for (int i = ; i < model.Count; i++)
{
NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + ); rowtemp.Height = ; //设置行高 rowtemp.CreateCell().SetCellValue(model[i].Id.ToString());
rowtemp.CreateCell().SetCellValue(model[i].Name.ToString());
rowtemp.CreateCell().SetCellValue(model[i].CreateTime.ToString("yyyy-MM-dd hh:mm:ss")); rowIndex++;
} System.IO.MemoryStream ms = new System.IO.MemoryStream();
book.Write(ms);
ms.Seek(, SeekOrigin.Begin); string fileName = "Market Sensing / KeyPromotion.xls";
return File(ms, "application/vnd.ms-excel", fileName); }
第三步:前端页面
function ExcelNewKeyPromotion() {
window.open("/Home/ExcelNewKeyPromotion")
}
MVC 导出Execl 的总结几种方式 (三)的更多相关文章
- MVC 导出Execl 的总结几种方式 (二)
接着上面的来,继续导出Execl 的功能 使用FileResult 方式直接可以生产Execl ,这样我们将会写大量处理后台的代码,个人感觉不好,只是展示出来,提供参考 第一步:编辑控制器 publi ...
- MVC 导出Execl 的总结几种方式 (四)
这种方式我个人还是比较喜欢的,使用部分视图的方式,导出Execl 这样在编辑样式上也是很方便的 第一步: 编辑导出视图页 @using H5UpdateImage.Models; @{ Layout ...
- MVC 导出Execl 的总结几种方式 (一)
在ASP.NET 中导出Execl 表格有很多方式,有利有弊,就是看自己怎么使用了:下面就是自己总结了几种导出Execl 方式的,仅供参考. 导出Execl 的原理都是一样的,其实都是将数据整合成ta ...
- .NET环境下导出Excel表格的两种方式和导入两种类型的Excel表格
一.导出Excel表格的两种方式,其中两种方式指的是导出XML数据类型的Excel(即保存的时候可以只需要修改扩展名为.xls)和真正的Excel这两种. using System; using Sy ...
- MVC验证10-到底用哪种方式实现客户端服务端双重异步验证
原文:MVC验证10-到底用哪种方式实现客户端服务端双重异步验证 本篇将通过一个案例来体验使用MVC的Ajax.BeginForm或jQuery来实现异步提交,并在客户端和服务端双双获得验证.希望能梳 ...
- spring mvc获取路径参数的几种方式 - 浅夏的个人空间 - 开源中国社区
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
- mvc 导出execl
mvc导出execl 必须是get方法才可以 也不能使用ajax function ComplaintsExport() { var serial = $("form").ser ...
- Spring MVC中forward请求转发2种方式(带参数)
Spring MVC中forward请求转发2种方式(带参数) http://www.51gjie.com/javaweb/956.html
- PHP导出excel文件的几种方式
PHP导出excel文件的几种方式 先说说动态生成的内容当作文件来下载的方法: 1.通过把Content-Type设置为application/octet-stream,可以把动态生成的内容当作文件来 ...
随机推荐
- Python os.walk() 遍历出当前目录下的文件夹和文件
os.walk目录遍历 os.walk的参数如下: os.walk(top, topdown=True, onerror=None, followlinks=False) 其中: - top是要遍历的 ...
- 二叉堆的实现(数组)——c++
二叉堆的介绍 二叉堆是完全二元树或者是近似完全二元树,按照数据的排列方式可以分为两种:最大堆和最小堆.最大堆:父结点的键值总是大于或等于任何一个子节点的键值:最小堆:父结点的键值总是小于或等于任何一个 ...
- Django(出版社功能)
day62 day62 2018-05-02 1. 内容回顾 Django 1. 安装 1. Django版本 1.11.xx ...
- FunDA(7)- Reactive Streams to fs2 Pull Streams
Reactive-Stream不只是简单的push-model-stream, 它还带有“拖式”(pull-model)性质.这是因为在Iteratee模式里虽然理论上由Enumerator负责主动推 ...
- 一次对webshell的后门的查看
本文作者i春秋作家——非主流 昨天晚上突发奇想的想去看看github上面tennc的webshell收集项目中的shell有没有漏洞,比如未授权啊啥的,结果找半天都没找到...但是机缘巧合下,居然给我 ...
- html5 页面基本骨架
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- byte范围及8种常见数据类型
byte范围:-128 到 127 原因 : 在计算机内,定点数有3种表示法:原码.反码和补码 原码 :二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小. 反码 ...
- Part15 – 前端之jQuery
本节内容 jQuery 一.jQuery jQuery是对DOM的封装 jQuery 中文在线文档:http://jquery.cuishifeng.cn/ 模块(Python) <--> ...
- 【xsy1147】 异或(xor) 可持久化trie
我的脑回路可能比较奇怪. 我们对这些询问离线,将所得序列${a}$的后缀和建$n$棵可持久化$trie$. 对于一组询问$(l,r,x)$,我们在主席树上询问第$l$棵树$-$第r$+1$棵树中与$s ...
- nodejs(三) --- nodejs进程与子进程
嗯,对于node的学习还远远不够,这里先做一个简单的api的记录,后续深入学习. 第一部分:nodejs中的全局对象之process进程对象 在node中的全局对象是global,相当于浏览器中的wi ...