数据导出至excle
ASP.NET MVC导出Excel
首先下载 NPOI.dll 引用到项目中
建议下载地址:http://download.csdn.net/detail/pukuimin1226/5851747
前台代码:
<a href='/Admin/NurseUser/Excel' target='_blank'>导出Excel</a>
后台代码:
public FileResult Excel()
{
//获取list数据
var list = bll.NurseUserListExcel("", "ID asc"); //创建Excel文件的对象
NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();
//添加一个sheet
NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1"); //给sheet1添加第一行的头部标题
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("邀请人ID");
row1.CreateCell(5).SetCellValue("邀请人名称");
row1.CreateCell(6).SetCellValue("邀请人电话");
row1.CreateCell(7).SetCellValue("总积分");
row1.CreateCell(8).SetCellValue("已使用积分");
row1.CreateCell(9).SetCellValue("可用积分");
//将数据逐步写入sheet1各个行
for (int i = 0; i < list.Count; i++)
{
NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1);
rowtemp.CreateCell(0).SetCellValue(list[i].ID);
rowtemp.CreateCell(1).SetCellValue(list[i].Name);
rowtemp.CreateCell(2).SetCellValue(list[i].Phone);
rowtemp.CreateCell(3).SetCellValue(list[i].CreateTime.Value.ToString());
rowtemp.CreateCell(4).SetCellValue(list[i].InviterID.Value);
rowtemp.CreateCell(5).SetCellValue(list[i].iName);
rowtemp.CreateCell(6).SetCellValue(list[i].iPhone);
rowtemp.CreateCell(7).SetCellValue(list[i].IntegralSum);
rowtemp.CreateCell(8).SetCellValue(list[i].IntegralSy);
rowtemp.CreateCell(9).SetCellValue(list[i].IntegralKy);
}
// 写入到客户端
System.IO.MemoryStream ms = new System.IO.MemoryStream();
book.Write(ms);
ms.Seek(0, SeekOrigin.Begin);
return File(ms, "application/vnd.ms-excel", "用户信息.xls");
} 2.动态生成Excle
public MemoryStream GetExecelByDT(DataTable dt) //返回的是文件流
{
HSSFWorkbook book = new HSSFWorkbook();
ISheet sheet = book.CreateSheet("2019项目列表情况表");
IRow ColumnsName = sheet.CreateRow(0);
//获取列名并且向Excel中填充列
for (int i = 0; i < dt.Columns.Count; i++)
{
ColumnsName.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
}
//向Excel中填充数据
//循环每一行
for (int i = 0; i < dt.Rows.Count; i++)
{
IRow DataRow = sheet.CreateRow(i + 1);
//循环每一列
for (int j = 0; j < dt.Columns.Count; j++)
{
DataRow.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString());
}
}
MemoryStream ms = new MemoryStream();
book.Write(ms);
ms.Seek(0, SeekOrigin.Begin);
return ms;
}
public void main()
{
//保存文件路径
string fullPath = System.IO.Path.Combine("文件路径" + 文件名.xlsx);
//根据数据生成文件流
MemoryStream exportData = new ExcelRanderBLL().GetExecelByDT(dt);
FileStream file = new FileStream(fullPath, FileMode.Create, FileAccess.Write);
//将文件流写入指定的文件里
exportData.WriteTo(file);
file.Close();
}
数据导出至excle的更多相关文章
- 一个php将数据库的数据导出到excle表格中的小dome
首先我们需要下载个PHPExcel,PHPExcel下载地址链接:https://pan.baidu.com/s/1nxpAc45 密码:qgct 下面来写个dome: <?php //把数据写 ...
- 数据库数据怎样导出成Excle表格或Word文档?
数据导出:将数据库的数据导出成Excel工作表或Word文档 方法:将一个泛型集合导出出去 主要使用: SaveFileDialog StreamWriter 导出代码: private void b ...
- .Net之Nopi Excel数据导出和批量导入功能
一.介绍NPOI和编写demo的原因 1.Npoi是什么: 它是一个专门用于读写Microsoft Office二进制和OOXML文件格式的.NET库,我们使用它能够轻松的实现对应数据的导入,导出功能 ...
- SSM上传EXCLE到数据库 和 从数据库导出为EXCLE
SSM上传EXCLE到数据库 和 从数据库导出为EXCLE package com.ABC.controller; import java.io.BufferedInputStream; import ...
- [K/3Cloud]有关单据显示行数限制和数据导出的建议
1.针对显示行数限制: 模仿现在很流行的"查看更多"的模式,动态加载数据. 我相信这一点建议别人也提过,还请总部对此开展头脑风暴,因为在实际使用中客户总是不理解为何要限制行数,解释 ...
- [django]数据导出excel升级强化版(很强大!)
不多说了,原理采用xlwt导出excel文件,所谓的强化版指的是实现在网页上选择一定条件导出对应的数据 之前我的博文出过这类文章,但只是实现导出数据,这次左思右想,再加上网上的搜索,终于找出方法实现条 ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇二:WinForm开发扇形图统计和Excel数据导出
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- mssqlserver数据导出到另外一个数据库
mssqlserver数据导出到另外一个数据库 准备源数据库,找到想要导出的数据库,右键选择"任务"再选择"导出数据" 设置源数据库信息 3.设置目标数据库,导 ...
- 在SQL Server中将数据导出为XML和Json
有时候需要一次性将SQL Server中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS来说当然是非常简单,但很多时候仅仅需要一次性导出这些数据而建立一个SSIS包就显得小题大做 ...
随机推荐
- DateFormat 日期格式化类(必须掌握)
package com.sxt.utils.date1; import java.util.Date; import java.text.DateFormat; import java.text.Si ...
- [软考]之软件过程模型II 标签: 软件工程 2015-11-01 11:52 1612人阅读 评论(22) 收
上一篇博客总结了瀑布模型/V模型/增量模型这三种软件模型,然而我们还有一个很重要的问题忘了回答,那就是,什么是软件过程模型? 什么是软件过程模型? 软件过程是软件开发与维护的工作流程和工艺流程,是软件 ...
- @CSP模拟2019.10.16 - T3@ 垃圾分类
目录 @description@ @solution@ @accepted code@ @details@ @description@ 为了保护环境,p6pou建设了一个垃圾分类器. 垃圾分类器是一个 ...
- oracle 和 mysql 遍历当前月份每一天
获取当前月份的每一天的数据 oracle SELECT TO_DATE(TO_CHAR(SYSDATE, 'YYYYMM'), 'YYYYMM') + (ROWNUM - 1) DAY_ID FROM ...
- vlc 网页插件的 使用与控制 API
下面开始使用教程: html文档结构: <object class="vlc" type='application/x-vlc-plugin' events='True' w ...
- Laravel5.1 实现第三方登录认证教程之 - 微信登录
https://laravel-china.org/topics/2451/laravel51-implementation-of-the-third-party-login-authenticati ...
- 异常解决:non-compatible bean definition of same name and class【com.xxx.xxx.XXX】
昨天同事遇到这样一个问题,意思是spring找到 有相同的实现类名在不同的package目录下. 跟踪他的项目代码并未发现问题. 重新给他的maven项目进行maven install一下. 查看 ...
- 用laravel搭一个微信公众号后台
我使用的是laravel5.2, 早期版本可能不适合下面的方法. 在routes.php写下接收微信服务器post请求的路径: Route::post('wechatmp', 'WechatContr ...
- Duplicate keys detected: '0'. This may cause an update error.
在运行vue项目的时候报了:[Vue warn]: Duplicate keys detected: ‘0’. This may cause an update error(错误,检测到重复的key值 ...
- oracle 用IN来替换OR
下面的查询可以被更有效率的语句替换: 低效: SELECT…. FROM LOCATION WHERE LOC_ID = 10 OR LOC_ID = 20 OR LOC_ID = 3 ...