分类:
.NET MVC
在公司实际开发中,我们用到Excel文件的地方很多,下面我来讲解一下如何创建
比如我们做一个如下图的报表:
前台页面设计:
@{ ViewBag.Title = "Index"; } <a href="/Excel/Down2">下载</a>
后台代码:
public void Down2() { //创建Excel文件 HSSFWorkbook workbook = new HSSFWorkbook(); //创建表 HSSFSheet sheet = workbook.CreateSheet("业绩表") as HSSFSheet; //创建行 HSSFRow row1 = sheet.CreateRow(0) as HSSFRow; row1.Height = 600; HSSFRow row2 = sheet.CreateRow(1) as HSSFRow; row2.Height = 600; HSSFRow row3 = sheet.CreateRow(2) as HSSFRow; row3.Height = 600; for (int i = 0; i < 8; i++) { row1.CreateCell(i); row2.CreateCell(i); row3.CreateCell(i); //设置列宽 sheet.SetColumnWidth(i, 1000*3); } //合并前四列 for (int i = 0; i < 4; i++) { sheet.AddMergedRegion(new NPOI.SS.Util.Region(0, i, 2, i)); } //合并第一行5列到8列 sheet.AddMergedRegion(new NPOI.SS.Util.Region(0, 4, 0, 7)); //合并第5列2到3行 sheet.AddMergedRegion(new NPOI.SS.Util.Region(1, 4, 2, 4)); //合并第6列2到3行 sheet.AddMergedRegion(new NPOI.SS.Util.Region(1, 5, 2, 5)); //合并第二行7、8列 sheet.AddMergedRegion(new NPOI.SS.Util.Region(1, 6, 1, 7)); //水平垂直居中样式 HSSFCellStyle cellStyle = workbook.CreateCellStyle() as HSSFCellStyle; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.CENTER; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.CENTER; row1.GetCell(0).SetCellValue("编码"); row1.GetCell(0).CellStyle = cellStyle; row1.GetCell(1).SetCellValue("月度"); row1.GetCell(1).CellStyle = cellStyle; row1.GetCell(2).SetCellValue("工资"); row1.GetCell(2).CellStyle = cellStyle; row1.GetCell(3).SetCellValue("绩效"); row1.GetCell(3).CellStyle = cellStyle; row1.GetCell(4).SetCellValue("8月经营性指标"); row1.GetCell(4).CellStyle = cellStyle; row2.GetCell(4).SetCellValue("在职人数"); row2.GetCell(4).CellStyle = cellStyle; row2.GetCell(5).SetCellValue("新增人数"); row2.GetCell(5).CellStyle = cellStyle; row2.GetCell(6).SetCellValue("实际销售为准"); row2.GetCell(6).CellStyle = cellStyle; row3.GetCell(6).SetCellValue("人力"); row3.GetCell(6).CellStyle = cellStyle; row3.GetCell(7).SetCellValue("出单率"); row3.GetCell(7).CellStyle = cellStyle; //测试数据 for (int i = 3; i < 12; i++) { //创建行 HSSFRow sub = sheet.CreateRow(i) as HSSFRow; //创建列 sub.CreateCell(0).SetCellValue("aa" + i); sub.CreateCell(1).SetCellValue("bb" + i); sub.CreateCell(2).SetCellValue("cc" + i); sub.CreateCell(3).SetCellValue("dd" + i); sub.CreateCell(4).SetCellValue("ee" + i); sub.CreateCell(5).SetCellValue("ff" + i); sub.CreateCell(6).SetCellValue("hh" + i); sub.CreateCell(7).SetCellValue("ii" + i); } //内存流 MemoryStream memory = new MemoryStream(); workbook.Write(memory); Response.AddHeader("Content-Disposition", "attachment;filename=公司业绩.xls"); Response.BinaryWrite(memory.ToArray()); }
下载注意事项:
当我们想要点击某个按钮下载Excel文件时,我们在结束时加上
//内存流
MemoryStream memory = new MemoryStream();
workbook.Write(memory);
Response.AddHeader("Content-Disposition", "attachment;filename=公司业绩.xls");
Response.BinaryWrite(memory.ToArray());
说明:我们需要把生成的文件通过文件流转换正二进制数组,这样我们才可以下载
然后我们点击下载就可以下载一个Excel电子表(公司业绩.xls)
电子表格效果如图:
在实际开发中,我们可以根据自己的需要来填充数据
是不是很简单呢,你学会了吗?
评价
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术