导出表格

开发工具与关键技术:VS Excel表格
作者:微凉之夏
撰写日期:2019年07月27日

在很多时候我们都需要打印或者导出一些数据到Exc表格中来用,接下来我们就来看下如何导出数据到Excel表格中,先是到页面中写script样式如下:
//导出数据到Excel表格
function ExportToExcel() {
layer.confirm(“是否要导出当前表格中的数据,是请点击确定按钮,否则请筛选需要导出的数据!”, { icon: 3, title: “提示” },
function (layIndex) {
layer.close(layIndex);
window.open(“ExportToExcel”);
}); }
定义一个方法之后就先给个提示它,是否要导出当前表格中的数据,是请点击确定按钮,否则请筛选你所需要导出的数据,然后打开ExportToExcel方法,这样页面的代码就完成了,接下来把ExportToExcel这个到控制器中写对应的代码。
先要定义页面中的ExportToExcel这个,然后在这个方法里面写代码,首先我们还得查询出你所需要查询的字段,如下是查询出所要导出的字段:
List linqMoneyAccount = (from tbFundsManagement in myModel.PW_FundsManagement
join tbUserinfo in myModel.PW_Userinfo on tbFundsManagement.FundsManagementID equals tbUserinfo.FundsManagementID
orderby tbFundsManagement.FundsManagementID
select new MoneyAccount{
FundsManagementID = tbFundsManagement.FundsManagementID,//资金管理ID
serinfoID = tbUserinfo.UserinfoID,//用户信息ID
UserName = tbUserinfo.UserName,//用户名
TotalAssets = tbFundsManagement.TotalAssets,//资产总额
AvailableAmount = tbFundsManagement.AvailableAmount,//可用金额
FrozenAmount = tbFundsManagement.FrozenAmount,//冻结金额
DeferredAmount = tbFundsManagement.DeferredAmount,//待收金额
AllotmentAmount = tbFundsManagement.AllotmentAmount,//待还金额
}).ToList();
查询出来就开始创建Excel工作簿(HSSFWorkbook excelBook = new HSSFWorkbook();)创建工作表(NPOI.SS.UserModel.ISheet sheet1 = excelBook.CreateSheet(“账户信息”);)再到创建表头行( NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0);)设置表头(row1.CreateCell(0).SetCellValue(“ID”); row1.CreateCell(1).SetCellValue(“用户名”); row1.CreateCell(2).SetCellValue(“资金总额”); row1.CreateCell(3).SetCellValue(“可用金额”);row1.CreateCell(4).SetCellValue(“冻结金额”);row1.CreateCell(5).SetCellValue(“待收金额”); row1.CreateCell(6).SetCellValue(“待还金额”);)(这其中的CreateCell是设置它的列数,从零开始算起0代表的是一,SetCellValue 是表示表头的名称)再到为Excel表格添加数据如下: //为Excel 表格添加数据
for (int i = 0; i < linqMoneyAccount.Count(); i++) {
NPOI.SS.UserModel.IRow rowTemp = sheet1.CreateRow(i + 1); //创建行
//添加数据(这个数据中的CreateCell中列数要对应上面表头中的列数,你不对应的话它会直接跳过去,比如你第一个写0第二个写2的话,他就会直接把你第二列的数据放到第三列中)
rowTemp.CreateCell(0).SetCellValue(linqMoneyAccount[i].UserinfoID.ToString()); rowTemp.CreateCell(1).SetCellValue(linqMoneyAccount[i].UserName); rowTemp.CreateCell(2).SetCellValue(linqMoneyAccount[i].TotalAssets.ToString());
rowTemp.CreateCell(3).SetCellValue(linqMoneyAccount[i].AvailableAmount.ToString());
rowTemp.CreateCell(4).SetCellValue(linqMoneyAccount[i].FrozenAmount.ToString());
rowTemp.CreateCell(5).SetCellValue(linqMoneyAccount[i].DeferredAmount.ToString());
rowTemp.CreateCell(6).SetCellValue(linqMoneyAccount[i].AllotmentAmount.ToString());}
为Excel文件给个命名这样 的话就方便你导出之后快速找到( string fileName = “账户信息” + DateTime.Now.ToString(“yyyy-MM-dd-HH-mm-ss-ffff”) + “.xls”;)再转化为内存流(MemoryStream ExcelStream = new MemoryStream();)输出之前调用下Seek(偏移量,游标位置)移动文件读取指针到指定的位置(ExcelStream.Seek(0, SeekOrigin.Begin);(Seek(0,Seek.begin)第一个参数表示的是相对应的位置,第二个参数则表示参照的位置))最后一步就是这个啦:
//MIME文件类型(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型
return File(ExcelStream, “application/vnd.ms-excel”, fileName);
你成功导出的话它会在左下角那里有这个提示:
在这里插入图片描述
下面请看结果图:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值