如何进行数据的导出?

如何进行数据的导出?

以前有进行过填写资料并且把资料导出Excel表格,当时就觉得好神奇,又想知道这样的功能是怎么实现的,可是那时的头脑简单,没有知道答案,可是现在我终于知道为什么可以直接导出数据了,其实也不难,主要是要学会运用的方法就可以了。
接下来讲一下步骤,再来看一下实现功能的代码。
步骤:1、先把要导出的数据查询出来;2、创建Excel工作簿;3、在工作簿中创建Excel工作表;4、在工作表中创建表头行;5、在表头行中设置表头标题;6、为Excel表格添加数据;
7、为Excel的文件命名;8、将信息写入内存流;9、调用Seek(偏移量,游标位置) 移动文件读取指针到指定的位置;10、MIME文件类型(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型(指定Content-Type:application/vnd.ms-excel ,浏览
器就会提示要下载的文件是excel文件)。
十个步骤实现导出的功能,并不难,接下来看一下代码的写法:
现在我用一个例子来说:(看图)
在这里插入图片描述
我需要导出上面表格里面的数据,先给导出按钮一个点击事件,然后再来写请求导出的方法:

function ExportToExcel() {
     layer.confirm("是否要导出当前表格中的数据,是请点击确定按钮!", { icon: 3, skin:"layui-layer-molv" }, function(layerIndex) {
           layer.close(layerIndex);  //关闭询问框
           window.open("ExportToExcel);  //请求的路径,打开下载的窗口
      });
}

在控制器的写法:

public ActionResult ExportToExcel(){
    //查询数据
    List<PW_Client> listClient = (from tbClient in myModels.PW_Client
                                  orderby tbClient.ClientID descending
                                  select tbClient).ToList();
	//创建客户信息的Excel工作簿
	HSSFWorkbook ClientexcelBook = new HSSFWorkbook();
	//创建客户信息的工作表
	NPOI.SS.UserModel.ISheet Clientsheet = ClientexcelBook.CreateSheet("客户信息");
	//创建客户信息的表头行
	NPOI.SS.UserModel.IRow Clientrow = Clientsheet.CreateRow(0);
	//设置客户信息表头
	Clientrow.CreateCell(0).SetCellValue("编号");
	Clientrow.CreateCell(1).SetCellValue("名称");
	Clientrow.CreateCell(2).SetCellValue("应收欠款");
	Clientrow.CreateCell(3).SetCellValue("单位电话");
	Clientrow.CreateCell(4).SetCellValue("联系人");
	Clientrow.CreateCell(5).SetCellValue("联系电话");
	//为客户信息的Excel表格添加数据
	for (int i = 0; i < listClient.Count(); i++){
	     //创建客户信息的行
	     NPOI.SS.UserModel.IRow rowTemp = Clientsheet.CreateRow(i + 1);
	     //添加客户信息数据
	     rowTemp.CreateCell(0).SetCellValue(listClient[i].ClientNum);
	     rowTemp.CreateCell(1).SetCellValue(listClient[i].ClientName);
	     rowTemp.CreateCell(2).SetCellValue(Convert.ToInt32(listClient[i].ClientAR));
	     rowTemp.CreateCell(3).SetCellValue(listClient[i].ClientMonadPhone);
	     rowTemp.CreateCell(4).SetCellValue(listClient[i].Clientlinkman);
	     rowTemp.CreateCell(5).SetCellValue(listClient[i].ClientPhone);
	 }
	//为客户信息的Excel文件命名(拼接了名称、年月日和文件的后缀名)
	string fileName = "客户信息" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ffff")+
	".xls";
	//将客户信息转化为内存流
	MemoryStream ExcelStream = new MemoryStream();
	//将客户信息的Excel文件写入内存流
	ClientexcelBook.Write(ExcelStream);
	//输出之前调用Seek(偏移量,游标位置) 移动文件读取指针到指定的位置
	//Seek(相对位置, 参照位置.开始位置) 第一个参数表示相对位置,第二个参数表示参照位置
	ExcelStream.Seek(0, SeekOrigin.Begin);
	//MIME文件类型(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型
	return File(ExcelStream, "application/vnd.ms-excel", fileName);
}

效果图:
在这里插入图片描述
注:在做导入功能之前,要把引用一个东西,名为NPOI.dll,否则无法完成导出的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值