.net layui 批量导出
.net开发,前台使用layui框架,后台使用WCF
废话不多,直接上代码
1>文件引用:
admin.css
layui.css
layui.js
jquery.min.js
layerTool.js
2>前台:
<script type="text/html" id="toptoolbar">
<button class="layui-btn layui-btn-sm" lay-event="ExportExcel">批量导出</button>
</script>
----------先来个批量导出的按钮 (ExportExcel)自定义
layui.use(['table', 'form', 'util'], function () {
var form = layui.form, layer = layui.layer;
var table = layui.table;
var field = null;
var util = layui.util;
table.on('toolbar(ListSupplierTable)', function (obj) {
switch (obj.event) {
case 'ExportExcel'://批量导出
ShowExportExcelWin();
break;
};
});
});
----------('table', 'form', 'util')看需求增减
----------(var form = layui.form, layer = layui.layer; var table = layui.table; var field = null; var util = layui.util;) 看需求增减
----------ShowExportExcelWin //方法名
//打开批量导出弹窗
var exportOpen;
function ShowExportExcelWin() {
var $ = layui.jquery;
var html = '<div class="layui-form">';
html += ' <div class="layui-form-item">';
html += ' <div class="layui-input-inline" style="padding-left:55px;padding-top:20px;">';
html += ' <input type="radio" name="rdowhere" value="1" title="全部导出" checked><br />';
html += ' <input type="radio" name="rdowhere" value="2" title="按筛选条件导出" >';
html += ' </div>';
html += ' </div>';
html += '</div>';
exportOpen = layer.open({
type: ,
title: '批量导出',
area: ['300px', '210px'],//宽高
btn: ['导出'],
yes: function () {
var FullName = $('#FullName').val();//供应商全称(筛选条件)
var SupplierType = $('#SupplierType').val();//供应商类型(筛选条件)
var SupplierLevel = $('#SupplierLevel').val();//供应商级别(筛选条件)
var LabMallSupplierIsEnable = $('#LabMallSupplierIsEnable').val();//是否启用(筛选条件)
var GoodsHomeShow = $('#GoodsHomeShow').val();//是否显示Log(筛选条件) var ExportType = $("input[name='rdowhere']:checked").val();//导出类型(1:全部;2:筛选) layer.load(, { shade: [0.1, '#000'] });//上传loading $.post("ExportExcelToSupplier", { FullName: FullName, SupplierType: SupplierType, SupplierLevel: SupplierLevel, LabMallSupplierIsEnable: LabMallSupplierIsEnable, GoodsHomeShow: GoodsHomeShow, ExportType: ExportType }, function (res) {
layer.closeAll('loading');//关闭loading
if (res.success) {
layer.close(exportOpen);
layer.msg("导出成功");
location.href = res.payload;
} else {
layer.alert(res.error.message, { title: '导出失败' });
}
}, "json");
},
content: html
});
layui.form.render();
}
----------导出功能分为全部导出和按照筛选条件导出
----------ExportExcelToSupplier //接口名
3>接口:
#region 批量导出供应商
/// <summary>
/// 批量导出供应商
/// </summary>
/// <returns></returns>
public JsonResult ExportExcelToSupplier()
{
LabMallSupplierEntity supplier = new LabMallSupplierEntity();
supplier.LabMallSupplierIsEnable = -;
supplier.LabMallSupplierIsDelete = -; int ExportType = GetRequestInt("ExportType");
if (ExportType == )
{
supplier.FullName = GetRequestString("FullName");
supplier.SupplierType = GetRequestInt("SupplierType");
supplier.SupplierLevel = GetRequestInt("SupplierLevel");
supplier.LabMallSupplierIsEnable = GetRequestInt("LabMallSupplierIsEnable");
supplier.GoodsHomeShow = GetRequestInt("GoodsHomeShow");
} LabMallSupplierResponse response = Supplier.GetSupplierObj().ExportExcelToSupplier(new LabMallSupplierRequest
{
LabMallSupplierDto = supplier
});
if (response.Code == )
{
return Success(response.ResposeData.ToString());
}
else
{
return Fail(response.ResposeData.ToString());
}
}
#endregion
#region 批量导出供应商(运营)
public LabMallSupplierResponse ExportExcelToSupplier(LabMallSupplierRequest request)
{
SupplierServiceClient obj = new SupplierServiceClient();
try
{
LabMallSupplierResponse response = obj.GetLabMallSupplierList(request);//调用服务端 数据集合 string FileFolder = AppDomain.CurrentDomain.BaseDirectory + "files\\Export\\Excel\\";
string FileName = FileFolder + "供应商管理.xls";//文件存放的路径
string ReturnUrl = "/files/Export/Excel/" + "供应商管理.xls";//需要返回的文件路径
if (!Directory.Exists(FileFolder))//指定路径没有该文件时创建
{
Directory.CreateDirectory(FileFolder);
}
if (File.Exists(FileName))//指定文件存在时删除
{
File.Delete(FileName);
}
MemoryStream ms = new MemoryStream();//创建一个流
IWorkbook workbook = new HSSFWorkbook();//创建workbook
ISheet sheet = workbook.CreateSheet("供应商");//创建sheet
IRow row = sheet.CreateRow();//创建row ICellStyle style = workbook.CreateCellStyle();//创建单元格样式
IFont font = workbook.CreateFont();//创建字体
font.Boldweight = short.MaxValue;//字体宽度
style.SetFont(font);//添加到样式 //表头
string[] colName = { "ID", "简称", "全称", "供应商类型", "供应商级别", "开户银行", "收款账号", "网址", "地址", "座机", "是否启用", "商城显示", "纳税人识别号", "类型", "法定代表人", "注册资本", "成立日期", "经营期限", "经营范围" };
for (int i = ; i < colName.Length; i++)
{
row.CreateCell(i).SetCellValue(colName[i]);//创建列
row.Cells[i].CellStyle = style;//字体加粗
} List<LabMallSupplierEntity> list = response.LabMallSupplierDtos;
if (list.Count==)
{
return new LabMallSupplierResponse
{
Code = ,
ResposeData = "没有数据"
};
}
for (int i = ; i < list.Count; i++)
{
LabMallSupplierEntity supplier = list[i];
IRow rows = sheet.CreateRow(i + );
rows.CreateCell().SetCellValue(supplier.LabMallSupplierID);
rows.CreateCell().SetCellValue(supplier.Name == null ? "" : supplier.Name.Trim());
rows.CreateCell().SetCellValue(supplier.FullName == null ? "" : supplier.FullName.Trim());
rows.CreateCell().SetCellValue(supplier.SupplierType == ? "直销" : "经销");
rows.CreateCell().SetCellValue(supplier.SupplierLevel == ? "合约供应商" : "普通供应商");
rows.CreateCell().SetCellValue(supplier.BankName == null ? "" : supplier.BankName.Trim());
rows.CreateCell().SetCellValue(supplier.BankCardNumber == null ? "" : supplier.BankCardNumber.Trim());
rows.CreateCell().SetCellValue(supplier.WebSite == null ? "" : supplier.WebSite.Trim());
rows.CreateCell().SetCellValue(supplier.Address == null ? "" : supplier.Address.Trim());
rows.CreateCell().SetCellValue(supplier.Phone == null ? "" : supplier.Phone.Trim());
rows.CreateCell().SetCellValue(supplier.LabMallSupplierIsEnable == ? "禁用" : "启用");
rows.CreateCell().SetCellValue(supplier.GoodsHomeShow == ? "显示" : "隐藏");
rows.CreateCell().SetCellValue(supplier.IdentityNum == null ? "" : supplier.IdentityNum.Trim());
rows.CreateCell().SetCellValue(supplier.Type == null ? "" : supplier.Type.Trim());
rows.CreateCell().SetCellValue(supplier.Representative == null ? "" : supplier.Representative.Trim());
rows.CreateCell().SetCellValue(supplier.RegisterCapital == null ? "" : supplier.RegisterCapital.Trim());
rows.CreateCell().SetCellValue(supplier.BirthDate.GetString() == null ? "" : supplier.BirthDate.GetString());
rows.CreateCell().SetCellValue(supplier.EndDate.GetString() == null ? "" : supplier.EndDate.GetString());
rows.CreateCell().SetCellValue(supplier.RunScope == null ? "" : supplier.RunScope.Trim());
}
workbook.Write(ms);
ms.Flush();
ms.Position = ; using (FileStream fs=new FileStream(FileName,FileMode.Create,FileAccess.Write))
{
byte[] data = ms.ToArray();
fs.Write(data, , data.Length);
fs.Flush();
data = null;
}
response.Code = ;
response.ResposeData = ReturnUrl;
return response;
}
catch (Exception ex)
{
LogHelp.Error(ex, request.LabMallSupplierDto);
return new LabMallSupplierResponse
{
Code = ,
ResposeData = ex.Message
};
}
finally
{
obj.Close();
}
}
#endregion
.net layui 批量导出的更多相关文章
- 批量导出access某表内容到word文档
一.需求: 需要将表中每一条记录中的某些内容导出在一个word文档中,并将这些文档保存在指定文件夹目录下 二.界面,简单设计如下: 三.添加office相关引用 添加后可在解决方案资源管理器中看到: ...
- 分享一个批量导出当前实例下的所有linkedserver脚本
分享一个批量导出当前实例下的所有linkedserver脚本 很多时候,我们都需要导出实例下面的登录用户,job,linkedserver等等 导出job比较复杂,下午写了一个脚本把所有的linked ...
- Max批量导出工具
Max批量导出工具 http://www.paulneale.com/scripts/batchItMax/batchItMax.htm Scripts Batch It Max: Batch It ...
- python批量导出导入MySQL用户的方法
这篇文章主要介绍了 数据库迁移(A -> B),需要把用户也迁移过去,而用户表(mysql.user)有上百个用户.有2种方法进行快速迁移: 1,在同版本的条件下,直接备份A服务器的mysql数 ...
- ATF批量导出工具
ATF批量导出工具 08 / 31, 2013 批量导出Atf的工具,使用是adobe atf 编码核心 先说一下关于atf的bug 当atf导出时候启用了mips选项会导致:如果纹理问长方形时上传会 ...
- MVC批量导出数据方法
近段时间做了个数据平台,其中涉及到批量导出CSV格式数据的业务,主要使用了部分视图和视图之间传值等知识点,今天做了下整理,特此分享下: 主要分为四步: 1:要打印的数据格式陈列View: 2:自定义导 ...
- C# 导出word文档及批量导出word文档(3)
在初始化WordHelper时,要获取模板的相对路径.获取文档的相对路径多个地方要用到,比如批量导出时要先保存文件到指定路径下,再压缩打包下载,所以专门写了个关于获取文档的相对路径的类. #regio ...
- C# 导出word文档及批量导出word文档(1)
这里用到了两个dll,一个是aspose.word.dll,另外一个是ICSharpCode.SharpZipLib.dll,ICSharpCode.SharpZipLib.dll是用于批量 ...
- C# 导出word文档及批量导出word文档(4)
接下来是批量导出word文档和批量打印word文件,批量导出word文档和批量打印word文件的思路差不多,只是批量打印不用打包压缩文件,而是把所有文件合成一个word,然后通过js来调用 ...
随机推荐
- 一个低级错误引发Netty编码解码中文异常
前言 最近在调研Netty的使用,在编写编码解码模块的时候遇到了一个中文字符串编码和解码异常的情况,后来发现是笔者犯了个低级错误.这里做一个小小的回顾. 错误重现 在设计Netty的自定义协议的时候, ...
- 问题:程序编译通过,但是执行时报错:coredump
问题描述: 在一个客户现场搭建环境时,遇到了一个棘手的问题,C代码编译通过后,无法正常运行,启动会出现“coredump”错误. 运行环境为新搭建的AIX6.1,数据库为Oracle11.2.0.2. ...
- 深入集合类系列——HashMap和HashTable的区别
含义:HashMap是基于哈希表的Map接口的非同步实现.允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变. 数据结构:HashMap实际上是一个“链表散列”的数据结 ...
- 使用 .NET Core 3.0 的 AssemblyLoadContext 实现插件热加载
一般情况下,一个 .NET 程序集加载到程序中以后,它的类型信息以及原生代码等数据会一直保留在内存中,.NET 运行时无法回收它们,如果我们要实现插件热加载 (例如 Razor 或 Aspx 模版的热 ...
- ArcGISEngine中GP工具奇怪错误问题error(s) have been detected for layer
运行时环境:使用CADToGeodatabase工具执行DWG文件转gdb过程,多次执行(即执行完一个dwg转gdb,再执行另一个dwg转gdb),执行失败 错误描述:首先执行CADToGeodata ...
- js常用Matn函数的操练
Math.PI console.log(Math.PI); 随机数以及向下取整 这是一个能实现从a-b之间随机打印一个整数 function rand_s(a, b) { var x = a + (b ...
- JavaSE----02.Java语言基础
02.Java语言基础 1.关键字 Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量.Java的关键字对Java的编译器有特殊的意义,他们用来表示一 ...
- Rust入坑指南:坑主驾到
欢迎大家和我一起入坑Rust,以后我就是坑主,我主要负责在前面挖坑,各位可以在上面看,有手痒的也可以和我一起挖.这个坑到底有多深?我也不知道,我是抱着有多深就挖多深的心态来的,下面我先跳了,各位请随意 ...
- 配置mysql可局域网内访问
一 进入mysql输入密码 :mysql -u root -p二 执行可局域网访问命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ...
- 程序员需要了解的硬核知识之CPU
大家都是程序员,大家都是和计算机打交道的程序员,大家都是和计算机中软件硬件打交道的程序员,大家都是和CPU打交道的程序员,所以,不管你是玩儿硬件的还是做软件的,你的世界都少不了计算机最核心的 - CP ...