在我们浏览网页大多数网页的时候在页面上会有个导出或者下载该文档的选项,当我们点击之后所选的数据会以Excel的形式保存在本地以便于离线浏览,今天我们就来实现这个Excel文档的下载功能。
首先我们需要在控制器内引入NPOI的引用,当引入完成后我们就可以创建Excel对象了,创建完Excel对象后在创建Excel对象工作簿,当这些都创建完毕后就可以开始下一步的操作了。
这一步是比较重要的一步,我们给Excel文档添加每一行的头部标题,头部标题就是我们输入了什么,在导出的时候Excel文档的标题就会显示我们输入的文字,创建标题的时候这里是从零开始,从零一直写到我们所需要的数据为止
NPOI.SS.UserModel.IRow row1 = sheet.CreateRow(0);
row1.CreateCell(0).SetCellValue("供应商分类");
row1.CreateCell(1).SetCellValue("供应商编号");
row1.CreateCell(2).SetCellValue("供应商名称");
row1.CreateCell(3).SetCellValue("单位电话");
row1.CreateCell(4).SetCellValue("联系人");
row1.CreateCell(5).SetCellValue("联系电话");
row1.CreateCell(6).SetCellValue("期初欠款");
row1.CreateCell(7).SetCellValue("应收欠款");
row1.CreateCell(8).SetCellValue("传真");
row1.CreateCell(9).SetCellValue("电子邮箱");
row1.CreateCell(10).SetCellValue("邮政编码");
row1.CreateCell(11).SetCellValue("QQ");
row1.CreateCell(12).SetCellValue("联系地址");
row1.CreateCell(13).SetCellValue("备注");
row1.CreateCell(14).SetCellValue("关联客户");
row1.CreateCell(15).SetCellValue("状态");
当头部标题写完之后我们就可以往每一列里面添加我们所需要的数据,这里只是一部分的C#代码,未截屏出来的那些和这些都是一模一样的,只是更改了名字罢了
当以上的步骤完成之后我们则要开始最后的一步也是最重要的一步,首先我们先定义文件下载到本地的名称
名称定义完成后我们则需要将Excel转为文件流输出然后保存到本地。
MemoryStream BookStream = new MemoryStream();//定义文件流
book.Write(BookStream);//将工作薄写入文件流
BookStream.Seek(0, SeekOrigin.Begin);//输出之前调用Seek方法:获取文件流的长度
return File(BookStream, "application/vnd.ms-excel", fileName); // 文件类型/文件名称/