.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 批量导出的更多相关文章

  1. 批量导出access某表内容到word文档

    一.需求: 需要将表中每一条记录中的某些内容导出在一个word文档中,并将这些文档保存在指定文件夹目录下 二.界面,简单设计如下: 三.添加office相关引用 添加后可在解决方案资源管理器中看到: ...

  2. 分享一个批量导出当前实例下的所有linkedserver脚本

    分享一个批量导出当前实例下的所有linkedserver脚本 很多时候,我们都需要导出实例下面的登录用户,job,linkedserver等等 导出job比较复杂,下午写了一个脚本把所有的linked ...

  3. Max批量导出工具

    Max批量导出工具 http://www.paulneale.com/scripts/batchItMax/batchItMax.htm Scripts Batch It Max: Batch It ...

  4. python批量导出导入MySQL用户的方法

    这篇文章主要介绍了 数据库迁移(A -> B),需要把用户也迁移过去,而用户表(mysql.user)有上百个用户.有2种方法进行快速迁移: 1,在同版本的条件下,直接备份A服务器的mysql数 ...

  5. ATF批量导出工具

    ATF批量导出工具 08 / 31, 2013 批量导出Atf的工具,使用是adobe atf 编码核心 先说一下关于atf的bug 当atf导出时候启用了mips选项会导致:如果纹理问长方形时上传会 ...

  6. MVC批量导出数据方法

    近段时间做了个数据平台,其中涉及到批量导出CSV格式数据的业务,主要使用了部分视图和视图之间传值等知识点,今天做了下整理,特此分享下: 主要分为四步: 1:要打印的数据格式陈列View: 2:自定义导 ...

  7. C# 导出word文档及批量导出word文档(3)

    在初始化WordHelper时,要获取模板的相对路径.获取文档的相对路径多个地方要用到,比如批量导出时要先保存文件到指定路径下,再压缩打包下载,所以专门写了个关于获取文档的相对路径的类. #regio ...

  8. C# 导出word文档及批量导出word文档(1)

         这里用到了两个dll,一个是aspose.word.dll,另外一个是ICSharpCode.SharpZipLib.dll,ICSharpCode.SharpZipLib.dll是用于批量 ...

  9. C# 导出word文档及批量导出word文档(4)

          接下来是批量导出word文档和批量打印word文件,批量导出word文档和批量打印word文件的思路差不多,只是批量打印不用打包压缩文件,而是把所有文件合成一个word,然后通过js来调用 ...

随机推荐

  1. 极光推送消息——RegistrationID方式

    1.工具类 package com.test.util; import cn.jiguang.common.resp.APIConnectionException; import cn.jiguang ...

  2. Python爬虫(一):爬虫伪装

    1 简介 对于一些有一定规模或盈利性质比较强的网站,几乎都会做一些防爬措施,防爬措施一般来说有两种:一种是做身份验证,直接把虫子挡在了门口,另一种是在网站设置各种反爬机制,让虫子知难而返. 2 伪装策 ...

  3. php常用操作(第二版)

    1.多个字段多重排序 function sortArrByManyField(){ $args = func_get_args(); // 获取函数的参数的数组 if(empty($args)){ r ...

  4. kotlin系列文章 --- 1.初识kotlin

    简介 Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由Jetbrains设计开发,现在是Android官方开发语言,和Java具有互操作性,可以共存. 为什么选择kotlin? 简 ...

  5. 创建新镜像-从已创建的容器中更新镜像并提交镜像(以Nginx为例)

    目标:现在我们主要是修改nginx的index.html,然后做一个新镜像 1.基于nginx:1.12运行一个容器 docker run -d -p 8080:80 --name nginx ngi ...

  6. Word文档操作知识

    Word文档操作知识 #持续更新 本次更新时间:2019-03-06 14:34 一.换行时字体空间过大 问题情景:当我们编写中文的文档时,中间插入了西方的字体或符号,在以它为行尾换行时: 会出现字体 ...

  7. Java基础学习(八) - 多线程

    理解线程 进程是指一个内存中运行的应用程序,系统运行一个程序即是一个进程从创建,运行,结束的过程. 线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程. 多线程的特点是并发 ...

  8. 一次Commons-HttpClient的BindException排查

    线上有个老应用,在流量增长的时候,HttpClient抛出了BindException.部分的StackTrace信息如下: java.net.BindException: Address alrea ...

  9. centos8安装图解

    CentOS 8 的新特性 DNF 成为了默认的软件包管理器,同时 yum 仍然是可用的 使用网络管理器(nmcli 和 nmtui)进行网络配置,移除了网络脚本 使用 Podman 进行容器管理 引 ...

  10. ES6 —— entries(),keys()和values()

    ES6 提供三个新的方法 —— entries(),keys()和values() —— 用于遍历数组.它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的 ...