导出数据到Excel表格
开发工具与关键技术:Visual Studio 和 ASP.NET.MVC,
作者:陈鸿鹏
撰写时间:2019年5月25日
1
2
3
下面是我们来学习的导出数据到Excel表格的总结
首先在视图层写导出数据的点击事件
function 自定义点击事件名()
{
//然后这里获取当前表格数据的筛选条件
var 自定义下拉框名 = $("#下拉框id “).val();
//后面根据你的条件数依次写
……
var 自定义文本框名 = $(”#文本框id ").val();
//然后这里写判断它是否为空
if (自定义下拉框名 == "" || 自定义下拉框名 == undefined) {
ID = 0;
}
//这里也是根据上面的依次在后面写
……
if (自定义文本框名 == undefined) {
自定义文本框名 = "";
}
//这里再接着输出一下,询问用户是否导出,如果是就输出后面的function回调函数,layer是调用的layui插件的弹出层
layer.confirm("询问语句", { icon: 3, title: "提示" }, function (layerIndex) {
layer.close(layerIndex);
//根据上面的筛选条件在后面依次写参数
window.open("控制器写的自定义导出方法名?根据上面的筛选条件依次写的参数);
});
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//然后再到控制器写方法
//后面的括号写写前面条件筛选的参数的条数
public ActionResult 自定义导出方法名(int id参数, ……string 文本框参数)
{
//然后这里紧接着写查询数据
List<自定义类的类名> 自定义列表名A = (from 自定义的表名1 in Model对象.连接的表1
join 自定义的表名 in Model对象.连接的表2 on 连接的表1.(连接的条件,对应ID值) equals 连接的表2.(连接的条件,对应ID值)
连接的表3 on 连接的表2.(连接的条件,对应ID值) equals 连接的表3.(连接的条件,对应ID值) (主外键相连)
orderby tbEmployee.EmployeeID descending(排序)
select new 自定义类的类名 {
类的属性1 = 自定义的表名.字段1,
类的属性2 = 自定义的表名.字段2,
类的属性3 = 自定义的表名.字段3,
……
}).Single();查询单条数据,当没有数据或者有多条数据时会触发异常
.ToList();查询多条数据并转为List
.Count();查询有多少条数据
//然后这里写条件筛选 Lambda表达式 运算符=>,左边是参数(如果有),右边是表达式或者语句
if (参数> 0)
{
自定义列表名A = 自定义列表名A.Where(m => m.对应id ==对应id).ToList();
}
if (参数2> 0)
{
自定义列表名A = 自定义列表名A.Where(m => m.对应id ==对应id).ToList();
}
if (!string.IsNullOrEmpty(文本框))
{
自定义列表名A = 自定义列表名A.Where(m => m.文本框里面写的数据.Contains(文本框id) || m.文本框里写的数据.Contains(文本框id)).ToList();
}
//然后这里接着写创建Excel工作簿
HSSFWorkbook 自定义工作簿名 = new HSSFWorkbook();
//然后这里再接着创建工作表,这里的NPOI是插件,NPOI就是在你没有安装office的时候可以读取Excel和word文档。创建表用ISheet,Sheet就是创建工作表的名字
NPOI.SS.UserModel.ISheet 自定义工作表名 = 自定义工作簿名.CreateSheet(“工作表的名字”);
//然后再接着创建表头行,创建行用IRow,0就表示第一行
NPOI.SS.UserModel.IRow 自定义表头行名A = 自定义工作表名.CreateRow(0);
//再接着设置表头,CreateCell是索引,SetCellValue设置表头行的值,需要多少就创建多少
自定义表头行名A.CreateCell(0).SetCellValue(“表头名字”);
自定义表头行名A.CreateCell(1).SetCellValue(“表头名字”);
自定义表头行名A.CreateCell(2).SetCellValue(“表头名字”);
……
//然后再接着for循环把数据一条一条的写到Excel表格
for (int i = 0; i < 上面的自定义列表名A.Count(); i++)
{
//创建行,这里的自定义行名不要和上面的重复
NPOI.SS.UserModel.IRow 自定义行名B = 自定义工作表名.CreateRow(i + 1);
//然后添加数据,这里的数据根据表头的数据名依次写
自定义行名B.CreateCell(0).SetCellValue(自定义列表名A [i].对应数据名);
自定义行名B.CreateCell(1).SetCellValue(自定义列表名A [i].对应数据名);
自定义行名B.CreateCell(2).SetCellValue(自定义列表名A [i].对应数据名);
自定义行名B.CreateCell(3).SetCellValue(自定义列表名A [i].对应数据名);
……
}
//然后再接着为Excel文件命名,DateTime再文件名后加上时间,yyyy-MM-dd-HH-mm-ss-ffff表示年月日时分秒毫秒,如下图为导出后的文件名,考生信息就是文件名,后面的数字是导出的时间.xls是后缀
string 自定义文件名 = “文件名” + DateTime.Now.ToString(“yyyy-MM-dd-HH-mm-ss-ffff”) + “文件后缀”;
//这里是创建一个内存流来保存二进制数组 MemoryStream 自定义内存流名 = new MemoryStream();
//这里将Excel文件写入内存流
自定义工作簿名.Write(自定义内存流名);
//输出之前调用Seek(偏移量,游标位置) 移动文件读取指针到指定的位置
//Seek(0,Seek.begin) 第一个参数表示相对位置,第二个参数表示参照位置
ExcelStream.Seek(0, SeekOrigin.Begin);
//然后返回到页面MIME文件类型(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型
return File(自定义内存流名, “application/vnd.ms-excel”, 自定义文件名);
}
最后到这里导出数据到Excel表格就完成了。
---------------------
导出数据到Excel表格的更多相关文章
- Java操作Jxl实现导出数据生成Excel表格数据文件
实现:前台用的框架是Easyui+Bootstrap结合使用,需要引入相应的Js.Css文件.页面:Jsp.拦截请求:Servlet.逻辑处理:ClassBean.数据库:SQLserver. 注意: ...
- Python导出数据到Excel表格-NotImplementedError: formatting_info=True not yet implemented
在使用Python写入数据到Excel表格中时出现报错信息记录:“NotImplementedError: formatting_info=True not yet implemented” 报错分析 ...
- PHP批量导出数据为excel表格
之前用插件phoexcel写过批量导入数据,现在用到了批量导出,就记录一下,这次批量导出没用插件,是写出一个表格,直接输出 //$teacherList 是从数据库查出来的二维数组 $execlnam ...
- php动态导出数据成Excel表格
一.封装 Excel 导出类 include/components/ExecExcel.php <?php /*** * @Excel 导入导出类. */ class ExecExcel { / ...
- spring boot 使用POI导出数据到Excel表格
在spring boot 的项目经常碰到将数据导出到Excel表格的需求,而POI技术则对于java操作Excel表格提供了API,POI中对于多种类型的文档都提供了操作的接口,但是其对于Excel表 ...
- Excel VBA ——如何导出数据到excel表格
sub OutPut() Dim FileTitle, MyPath, MyFullName As String Application.ScreenUpdating = false '关闭表格公式的 ...
- Java导出数据生成Excel表格
事先准备: 工具类: package com.wazn.learn.util.export; import java.sql.Connection; import java.sql.DriverMan ...
- PHP:引用PhpExcel导出数据到excel表格
我使用的是tp3.2框架(下载地址:http://www.thinkphp.cn/topic/38123.html) 1.首先要下载PhpExcel类库,放在如下图目录下 2.调用方法 public ...
- pl/sql developer导出数据到excel的方法
http://yedward.net/?id=92 问题说明:使用pl/sql developer导出数据到excel表格中是非常有必要的,一般的可能直接在导出的时候选择csv格式即可,因为该格式可以 ...
随机推荐
- JSP简单练习-包装类综合应用实例
<%@ page contentType="text/html; charset=gb2312" %><!-- JSP指令标签 --> <%@ pag ...
- 通过android XML 创建图形,降低对美工的依赖
在开发中总会须要自己定义各种View的样式,假设总是依赖美工作图弄出须要的UI样式图片(比方:一个button要选中和默认两张图片),不但时间上会浪费.往往也会有适配问题. 尽管能够通过.9图来解决一 ...
- 华为OJ2051-最小的K个数(Top K问题)
一.题目描述 描述: 输入n个整数,输出其中最小的k个. 输入: 输入 n 和 k 输入一个整数数组 输出: 输出一个整数数组 样例输入: 5 2 1 3 5 7 2 样例输出: 1 2 二.Top ...
- ZOJ问题(2010浙江大学研究生复试上机题目[找规律] hdoj 3788)
ZOJ问题 pid=3788">点击打开链接 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- 一条SQL语句面试题:求选修所有课程的学生
前几天求职面试,有一道SQL题:给出三个表:学生.课程.成绩,求选修了所有课程的学生. 一道看似很简单的问题,把我难住了,我改了又改,涂涂画画,抓耳挠腮,因为试卷没有多少空白位置了,最后只好放弃.心情 ...
- 【bzoj4591】[Shoi2015]超能粒子炮·改
设S(n,k)=Σ C(n,i) i=0..k 根据lucas定理可以得到 S(n,k) mod p = [ S(n/p,k/p-1)*S(n mod p,p-1)+C(n/p,k/p)*S(n mo ...
- 通过spark rdd 求取 特征的稀疏向量
通过spark rdd 求取 特征的稀疏向量 spark 类标签的稀疏 特征向量 - bonelee - 博客园 http://www.cnblogs.com/bonelee/p/7814081.h ...
- 安装Node.js 以及命令行使用
安装 官方的安装包 安装完成之后,会自动添加到环境变量中 通过visual studio安装 命令行 查看版本 PS C:\Users\clu\Desktop> node --version v ...
- YTU 2508: 武功秘籍
2508: 武功秘籍 时间限制: 1 Sec 内存限制: 128 MB 提交: 1384 解决: 438 题目描述 小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的). 他 ...
- dom小练习
dom小练习 学习要点 综合运用学过的知识完成几个综合小练习,巩固学过的知识. 阶段小练习8-1:改变网页字体的大小 要求和提示: 要求:当用户选择‘大/中/小’的选项时,页面字体发生相应的变化 阶段 ...