近来接手的项目,有几个很值得分享的东西。经过自己的不懈实践,总结,分享给大家,希望能对大家的学习有点帮助。

本次探讨的是mvc框架之中的一种导出方法,导出excel。

先让大家看一下啊我们的view界面:

我们的view代码:

<body>
<div style="margin-top:30px;margin-left:20px;">
<div class="easyui-panel" title="查询" style="width:1240px;">
<div style="margin:10px 20px;float:left">
@*加载搜索框*@
请输入要查询的内容:
<input class="easyui-textbox" id="txtSearch" name="txtSearch" onkeydown="Enter();" maxlength="20" style="width:150px;">
<a href="javascript:void(0)" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true" onclick="stuSearch()" >查询</a>
<a id="download" @*href="/FreshStudent/ExportExcel"*@ class="easyui-linkbutton" style="margin-left :720px";data-options="iconCls:'',plain:true" onclick="Export()">导出Excel</a>
</div>
</div> </div> <div id="ContentAreas" style="margin-top: 15px; margin-left: 20px; width: 960px;"> <table id="dt" class="easyui-datagrid" title="学生报表" style="width: 1240px; height: auto"
data-options="url:'/FreshStudent/SelectStu',singleSelect:true,pagination:true">
<thead>
<tr>
<th data-options="field:'StudentCode',width:150,align:'center',sortable:true" >学号</th>
<th data-options="field:'Name',width:120,align:'center'">姓名</th>
<th data-options="field:'strSex',width:120,align:'center'">性别</th>
<th data-options="field:'Score',width:120,align:'center'">分数</th>
<th data-options="field:'Level',width:120,align:'center'">学历</th>
<th data-options="field:'FreshMajorName',width:150,align:'center'">专业名称</th>
<th data-options="field:'FreshDepartmentName',width:150,align:'center'">学院名称</th>
<th data-options="field:'TelNum',width:150,align:'center'">联系方式</th>
<th data-options="field:'strCheckIn',width:120,align:'center'">是否报道</th>
</tr>
</thead>
</table>
</div> </body>



controller代码分享:



<span style="font-size:18px;">#region 导出数据Excel  --李卫中--2016年1月5日21:00:10
/// <summary>
/// 导出数据
/// </summary>
/// <param name="strlike"></param>
/// <returns></returns>
public ActionResult ExportExcel(string strlike) {
//获取前台界面容量
int pageSize = Request["rows"] == null ? 10 : int.Parse(Request["rows"]);
//获取前台界面当前页
int pageIndex = Request["page"] == null ? 1 : int.Parse(Request["page"]);
//定义总数,接收后台记录数目
int total;
List<FreshStudentViewModel> stuList = new List<FreshStudentViewModel>(); //执行模糊查询
if (strlike == "" || strlike == null)
{
stuList = stuService.ExportAllStu();
}
else {
stuList = stuService.ExportStu(strlike);
}
//给Excel导出里面添加表头
Hashtable headnames = new Hashtable(); headnames.Add("Score", "分数");
headnames.Add("Level", "学历");
headnames.Add("FreshMajorName", "专业名称");
headnames.Add("StudentCode", "学号");
headnames.Add("Name", "姓名");
headnames.Add("strSex", "性别");
headnames.Add("FreshDepartmentName", "学院名称");
headnames.Add("TelNum", "联系方式");
headnames.Add("strCheckIn", "是否报道"); //导出新生报表信息
return File(ExportManager.ExportExcel(stuList, headnames), "application/vnd.ms-excel", "新生报表.xls");
}
#endregion</span>

Js方法分享:

<span style="font-size:18px;">function Export() {
var strlike = $("#txtSearch").val();
window.location.href = "/FreshStudent/ExportExcel?strlike=" + strlike; }</span>

然后,我们的后台方法就不再累述了,就是从数据库中查询得到的数据集合,返回之后有我们的controller来接收。

效果展示:



遗留问题:导出的数据表头顺序发生错乱,请关注本篇博客后续解决方案!

小结:

这个方法其实是很简单的,但是其中有一个地方难住了我大约有一个小时,就是通过点击我们用controller来获取id="txtSearch"的值,这个在很多人开来很简单,其实对我来说也是很简单,等我写出这个方法后发现,总结。自己动手的机会还是太少了,以至于有些地方想不到,我们有句话叫“不怕不知道,就怕不知道”,我们不是不会,是总也想不到。这比我们想到了不会要严重得多。所以我们要把握好每一次我们遇到困难的机会,每一个机会都会带给我们一点收获,一些改变。

加油!  少(sao)年(nian)!

【项目总结】之——导出Excel的更多相关文章

  1. 【angularjs】pc端使用angular搭建项目,实现导出excel功能

    此为简单demo. <!DOCTYPE html> <html ng-app="myApp"> <head> <meta charset= ...

  2. 项目笔记:导出Excel功能

    1.前台这块: var ids=""; $.post("${basePath}/assets/unRegDeviceAction_getDeviceIds.do" ...

  3. 项目笔记:导出Excel功能分sheet页插入数据

    导出Excel功能分sheet页处理数据: /*导出EXCEL*/ public void createExcel() { log.info("导出Excel功能已经启动-BEGIN&quo ...

  4. vue项目,前端导出excel

    今天研究一下前端如何导出excel,边查边实践,边记录 1.安装依赖库 xlsx:这是一个功能强大的excel处理库,但是上手难度也很大,还涉及不少二进制的东西 file-saver:ES5新增了相关 ...

  5. Springboot+vue前后端分离项目,poi导出excel提供用户下载的解决方案

    因为我们做的是前后端分离项目 无法采用response.write直接将文件流写出 我们采用阿里云oss 进行保存 再返回的结果对象里面保存我们的文件地址 废话不多说,上代码 Springboot 第 ...

  6. 项目笔记:导出Excel功能设置导出数据样式

    /** * 导出-新导出 * * @return * @throws IOException */ @OperateLogAnn(type = OperateEnum.EXPORT, hibInter ...

  7. vue项目实现表格导出excel表格

    第一:安装依赖 npm install -S file-saver xlsx npm install -D script-loader 第二:在目录里新建excel文件夹 在excel文件夹里新建两个 ...

  8. jxl导出Excel文件

    一.java项目实现读取Excel文件和导出Excel文件 实现读取和导出Excel文件的代码: package servlet; import java.io.FileInputStream; im ...

  9. C# 使用Epplus导出Excel [1]:导出固定列数据

    C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...

  10. NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中

    以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...

随机推荐

  1. unity3d项目文件目录发布后,对应的ios/android应用目录[转]

    Unity3d的Resource.AssetBundle与手游动态更新的报告,在这里分享一下,希望能够对各位用Unity的朋友有些许帮助.目录:1.Unity的资源数据加载2.Resource.Str ...

  2. 如果你修改了ashx.cs的命名空间

    如果你修改了ashx.cs的命名空间,记得要同时修改ashx的WebHandler的Class. 在解决方案资源管理器中右键,查看标记

  3. Python批量修改文件名-后缀

    LyncLynn用途: 批量修改文件格式,文件名后缀. #Version: V1.0 #Author:lynclynn #Description:Change the filename #Create ...

  4. Effective C++ -----条款07:为多态基类声明virtual析构函数

    polymorphic(带多态性质的)base classes应该声明一个virtual析构函数.如果class带有任何virtual函数,它就应该拥有一个virtual析构函数. Classes的设 ...

  5. zsh 通信脚本

    server #!/bin/zsh #zsh TCP server script zmodload zsh/net/tcp #listening port ztcp -l #This is a fil ...

  6. jquery.base64.js简单使用

    jquery.base64.js, 加密,使用,先引入jquery,然后引入jquery.base64.js 使用如下 js中加密如下 $.base64.encode(result[i].ipadre ...

  7. Spring 系列: Spring 框架简介

    Spring AOP 和 IOC 容器入门(转载) 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级的.强壮的 J2EE 应用程序.dev ...

  8. ref 和 out

    两者都是按地址传递的,使用后都将改变原来的数值.很多人在论坛上解释说out是按数值传递,是错误的.简单的测试后可以知道out使用也能改变数值的,所以肯定是按照地址传递的.其次:rel可以把参数的数值传 ...

  9. sqlserver 数据库中时间函数的建立

    create function [dbo].[HtoSec](@lvalue as int)RETURNS intBEGINDECLARE @temp intSet @temp = @lvalue * ...

  10. instanceof、 isinstance 与 isAssignableFrom的区别

    instanceof运算符 只被用于对象引用变量,检查左边的被测试对象 是不是 右边类或接口的 实例化.如果被测对象是null值,则测试结果总是false. 形象地:自身实例或子类实例 instanc ...