easyui datagrid 导出excel

easyui datagrid 表格内容导出为Excel (使用easypoi,单sheet非模板) 1.概况 背景:SSM框架下的maven管理项目 需求:将datagrid前端展示的表格导出为Excel文件 插件:easypoi(现成的轮子) 备注:此方法只要引入插件,并且有获取datagrid的数据源方法就足够完成了,导出的样式是单sheet非模板的Excel表格。 2.实现 整体思路: 1.引入插件jar包 2.前台页面添加导出按钮和点击事件 3.后台导出处理: 1)两... 阅读详情

本片文章是介绍如何用ajax的方式将easyui中的datagrid数据导出到excel中。

声明:该代码是在参考前人的代码写出来的,并非我原创,我只是新增了些功能微笑。

新增部分:

1. 对于列是枚举列的可以设置枚举值,导出时会自动替换列中的枚举值,详细见用例代码。

2. 新增导出时不导出首列或末列指定个数的列,详细接用例代码。

下面是插件源码:

/**
Jquery easyui datagrid js导出excel
修改自extgrid导出excel
* allows for downloading of grid data (store) directly into excel
* Method: extracts data of gridPanel store, uses columnModel to construct XML excel document,
* converts to Base64, then loads everything into a data URL link.
*
* @author Guo Jing <iTrucks>
* 2015-01-12
*
*/
$.extend($.fn.datagrid.methods, {
    getExcelXml: function (jq, param) {
        var worksheet = this.createWorksheet(jq, param);
        //alert($(jq).datagrid('getColumnFields'));
        var totalWidth = 0;
        var cfs = $(jq).datagrid('getColumnFields');
        /* **判断是否删除第一行以及最后一行************begin****************/
        //console.dir(JSON.stringify(param.enums[0].type));
        if (param.removeFirstCol) {
            if (param.removeLastCol) {
                for (var i = param.removeFirstCol; i < cfs.length - param.removeLastCol; i++) {
                    totalWidth += $(jq).datagrid('getColumnOption', cfs[i]).width;
                }
            }
            else {
                for (var i = param.removeFirstCol; i < cfs.length; i++) {
                    totalWidth += $(jq).datagrid('getColumnOption', cfs[i]).width;
                }
            }
        }
        else {
            if (param.removeLastCol) {
                for (var i = 0; i < cfs.length - param.removeLastCol; i++) {
                    totalWidth += $(jq).datagrid('getColumnOption', cfs[i]).width;
                }
            }
            else {
                for (var i = 0; i < cfs.length; i++) {
                    totalWidth += $(jq).datagrid('getColumnOption', cfs[i]).width;
                }
            }
        }
        /*****************************end*********************************/
        //var totalWidth = this.getColumnModel().getTotalWidth(includeHidden);
        return '<?xml version="1.0" encoding="utf-8"?>' +//xml申明有问题,以修正,注意是utf-8编码,如果是gb2312,需要修改动态页文件的写入编码
    '<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:o="urn:schemas-microsoft-com:office:office">' +
    '<o:DocumentProperties><o:Title>' + param.title + '</o:Title></o:DocumentProperties>' +
    '<ss:ExcelWorkbook>' +
    '<ss:WindowHeight>' + worksheet.height + '</ss:WindowHeight>' +
    '<ss:WindowWidth>' + worksheet.width + '</ss:WindowWidth>' +
    '<ss:ProtectStructure>False</ss:ProtectStructure>' +
    '<ss:ProtectWindows>False</ss:ProtectWindows>' +
    '</ss:ExcelWorkbook>' +
    '<ss:Styles>' +
    '<ss:Style ss:ID="Default">' +
    '<ss:Alignment ss:Vertical="Top"  />' +
    '<ss:Font ss:FontName="arial" ss:Size="10" />' +
    '<ss:Borders>' +
    '<ss:Border  ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Top" />' +
    '<ss:Border  ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Bottom" />' +
    '<ss:Border  ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Left" />' +
    '<ss:Border ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Right" />' +
    '</ss:Borders>' +
    '<ss:Interior />' +
    '<ss:NumberFormat />' +
    '<ss:Protection />' +
    '</ss:Style>' +
    '<ss:Style ss:ID="title">' +
    '<ss:Borders />' +
    '<ss:Font />' +
    '<ss:Alignment  ss:Vertical="Center" ss:Horizontal="Center" />' +
    '<ss:NumberFormat ss:Format="@" />' +
    '</ss:Style>' +
    '<ss:Style ss:ID="headercell">' +
    '<ss:Font ss:Bold="1" ss:Size="10" />' +
    '<ss:Alignment  ss:Horizontal="Center" />' +
    '<ss:Interior ss:Pattern="Solid"  />' +
    '</ss:Style>' +
    '<ss:Style ss:ID="even">' +
    '<ss:Interior ss:Pattern="Solid"  />' +
    '</ss:Style>' +
    '<ss:Style ss:Parent="even" ss:ID="evendate">' +
    '<ss:NumberFormat ss:Format="yyyy-mm-dd" />' +
    '</ss:Style>' +
    '<ss:Style ss:Parent="even" ss:ID="evenint">' +
    '<ss:NumberFormat ss:Format="0" />' +
    '</ss:Style>' +
    '<ss:Style ss:Parent="even" ss:ID="evenfloat">' +
    '<ss:NumberFormat ss:Format="0.00" />' +
    '</ss:Style>' +
    '<ss:Style ss:ID="odd">' +
    '<ss:Interior ss:Pattern="Solid"  />' +
    '</ss:Style>' +
    '<ss:Style ss:Parent="odd" ss:ID="odddate">' +
    '<ss:NumberFormat ss:Format="yyyy-mm-dd" />' +
    '</ss:Style>' +
    '<ss:Style ss:Parent="odd" ss:ID="oddint">' +
    '<ss:NumberFormat ss:Format="0" />' +
    '</ss:Style>' +
    '<ss:Style ss:Parent="odd" ss:ID="oddfloat">' +
    '<ss:NumberFormat ss:Format="0.00" />' +
    '</ss:Style>' +
    '</ss:Styles>' +
    worksheet.xml +
    '</ss:Workbook>';
    },
    createWorksheet: function (jq, param) {
        // Calculate cell data types and extra class names which affect formatting
        var cellType = [];
        var cellTypeClass = [];
        //var cm = this.getColumnModel();
        var totalWidthInPixels = 0;
        var colXml = '';
        var headerXml = '';
        var visibleColumnCountReduction = 0;
        var cfs = $(jq).datagrid('getColumnFields');
        var colCount = cfs.length;
        var cstartIndex = 0, cendIndex = colCount;
        var colWidthEnumsIndex = [];//记录枚举列的下标和枚举数组对应的下标。
        //alert(param.removeFirstCol + "," + param.removeLastCol);
        if (param.removeFirstCol) {
            cstartIndex = param.removeFirstCol;
            if (param.removeLastCol) {
                cendIndex = colCount - param.removeLastCol;
            }
            else {
                cendIndex = colCount;
            }
        }
        else {
            cstartIndex = 0;
            if (param.removeLastCol) {

                cendIndex = colCount - param.removeLastCol;
            }
            else {
                cendIndex = colCount;
            }
        }
        for (var i = cstartIndex; i < cendIndex; i++) {
            if (cfs[i] != '') {
                var w = $(jq).datagrid('getColumnOption', cfs[i]).width;
                totalWidthInPixels += w;
                if (cfs[i] === "") {
                    cellType.push("None");
                    cellTypeClass.push("");
                    ++visibleColumnCountReduction;
                }
                else {
                    colXml += '<ss:Column ss:AutoFitWidth="1" ss:Width="130" />';
                    headerXml += '<ss:Cell ss:StyleID="headercell">' +
                '<ss:Data ss:Type="String">' + $(jq).datagrid('getColumnOption', cfs[i]).title.replace("<br>","") + '</ss:Data>' +
                '<ss:NamedCell ss:Name="Print_Titles" /></ss:Cell>';
                    cellType.push("String");
                    cellTypeClass.push("");
                    if (param.enums) {
                        //遍历枚举数组,检测是否有列属于枚举类型
                        for (var j = 0; j < param.enums.length; j++) {
                            if ($(jq).datagrid('getColumnOption', cfs[i]).title == param.enums[j].type) {
                                //console.dir($(jq).datagrid('getColumnOption', cfs[i]).title + "," + i);
                                colWidthEnumsIndex.push({ colIndex: i, enumIndex: j });
                            }
                        }
                    }

                }
            }
        }
        //console.dir(JSON.stringify(colWidthEnumsIndex.length));
        var visibleColumnCount = cellType.length - visibleColumnCountReduction;
        var result = {
            height: 9000,
            width: Math.floor(totalWidthInPixels * 30) + 50
        };
        var rows = $(jq).datagrid('getRows');
        // Generate worksheet header details.
        var t = '<ss:Worksheet ss:Name="' + param.title + '">' +
    '<ss:Names>' +
    '<ss:NamedRange ss:Name="Print_Titles" ss:RefersTo="=\'' + param.title + '\'!R1:R2" />' +
    '</ss:Names>' +
    '<ss:Table x:FullRows="1" x:FullColumns="1"' +
    ' ss:ExpandedColumnCount="' + (visibleColumnCount + 2) +
    '" ss:ExpandedRowCount="' + (rows.length + 2) + '">' +
    colXml +
    '<ss:Row ss:AutoFitHeight="1">' +
    headerXml +
    '</ss:Row>';
        // Generate the data rows from the data in the Store
        //for (var i = 0, it = this.store.data.items, l = it.length; i < l; i++) {
        for (var i = 0, it = rows, l = it.length; i < l; i++) {
            t += '<ss:Row>';
            var cellClass = (i & 1) ? 'odd' : 'even';
            r = it[i];
            var k = 0;
            for (var j = cstartIndex; j < cendIndex; j++) {
                //if ((cm.getDataIndex(j) != '')
                if (cfs[j] != '') {
                    //var v = r[cm.getDataIndex(j)];
                    var v = r[cfs[j]];
                    if (cellType[k] !== "None") {
                        t += '<ss:Cell ss:StyleID="' + cellClass + cellTypeClass[k] + '"><ss:Data ss:Type="' + cellType[k] + '">';
                        if (cellType[k] == 'DateTime') {
                            t += v.format('Y-m-d');
                        } else {
                            
                            //判断该列是否属于枚举,如果是,则进行转换
                            for (var lp = 0; lp < colWidthEnumsIndex.length; lp++) {
                                if (j == colWidthEnumsIndex[lp].colIndex) {//当前列是枚举列
                                    //console.dir(JSON.stringify(param.enums[l].value));
                                    //遍历枚举中的值,对元数据进行替换
                                    for (var mp = 0; mp < param.enums[lp].value.length; mp++) {
                                        if (v == param.enums[lp].value[mp].key) {
                                            v = param.enums[lp].value[mp].text;
                                        }
                                        //switch (v) {
                                        //    case param.enums[l].value[m].key:
                                        //        v = param.enums[l].value[m].text;
                                        //        break;
                                        //}
                                    }
                                }
                            }
                            t += v;
                        }
                        t += '</ss:Data></ss:Cell>';
                    }
                    k++;
                }
            }
            t += '</ss:Row>';
        }
        result.xml = t + '</ss:Table>' +
    '<x:WorksheetOptions>' +
    '<x:PageSetup>' +
    '<x:Layout x:CenterHorizontal="1" x:Orientation="Landscape" />' +
    '<x:Footer x:Data="Page &P of &N" x:Margin="0.5" />' +
    '<x:PageMargins x:Top="0.5" x:Right="0.5" x:Left="0.5" x:Bottom="0.8" />' +
    '</x:PageSetup>' +
    '<x:FitToPage />' +
    '<x:Print>' +
    '<x:PrintErrors>Blank</x:PrintErrors>' +
    '<x:FitWidth>1</x:FitWidth>' +
    '<x:FitHeight>32767</x:FitHeight>' +
    '<x:ValidPrinterInfo />' +
    '<x:VerticalResolution>600</x:VerticalResolution>' +
    '</x:Print>' +
    '<x:Selected />' +
    '<x:DoNotDisplayGridlines />' +
    '<x:ProtectObjects>False</x:ProtectObjects>' +
    '<x:ProtectScenarios>False</x:ProtectScenarios>' +
    '</x:WorksheetOptions>' +
    '</ss:Worksheet>';
        return result;
    }
});

用例
//导出
        function Save_Excel() {//导出Excel文件
            //处理列中有枚举类型的值,传入枚举名值对程序将自动进行替换
            var enumsVal = [{ type: "车辆类型", value: [{ key: 10, text: "普通厢式货车" }, { key: 20, text: "城市配送标准车" }, { key: 30, text: "冷藏冷冻车" }, { key: 40, text: "其他配送车辆" }] },
                            { type: "通行证类型", value: [{ key: 10, text: "特通" }, { key: 20, text: "甲通" }, { key: 30, text: "乙通" }] },

                            { type: "燃料类型", value: [{ key: 10, text: "汽油" }, { key: 20, text: "CNG" }, { key: 30, text: "柴油" }, { key: 40, text: "LNG" }, { key: 50, text: "电动" }] },
                            { type: "状态", value: [{ key: true, text: "已启用" }, { key: false, text: "未启用" }] }
            ];
            //getExcelXML有一个JSON对象的配置,配置项看了下只有title配置,为excel文档的标题
            var data = $('#m_dgvList').datagrid('getExcelXml', { title: 'datagrid import to excel', removeFirstCol: 0, removeLastCol: 1, enums: enumsVal }); //获取datagrid数据对应的excel需要的xml格式的内容
            //用ajax发动到动态页动态写入xls文件中
            var url = '../../datagrid-export-excel.ashx'; //如果为asp注意修改后缀
            var dlurl = "../../DownloadFile.ashx";
            $.ajax({
                url: url, data: { data: data }, type: 'POST', dataType: 'text',
                success: function (fn) {
                    window.location = dlurl + "?FileName=车辆查询.xls&FilePath=" + fn; //执行下载操作
                    //window.open(dlurl + "?FileName=车辆查询.xls&FilePath=" + fn);
                },
                error: function (xhr) {
                    alert('动态页有问题\nstatus:' + xhr.status + '\nresponseText:' + xhr.responseText)
                }
            });
            return false;
        }
datagrid-export-excel.ashx:
<%@ WebHandler Language="C#" Class="datagrid_export_excel" %>

using System;
using System.Web;

public class datagrid_export_excel : IHttpHandler {

    public void ProcessRequest(HttpContext context)
    {
        string fn = System.Configuration.ConfigurationManager.AppSettings["temFilePath"].ToString() + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xls";
        string data = context.Request.Form["data"];
        System.IO.File.WriteAllText(context.Server.MapPath(fn), data, System.Text.Encoding.Unicode);//如果是gb2312的xml申明,第三个编码参数修改为Encoding.GetEncoding(936)

        context.Response.Write(fn);//返回文件名提供下载
    }
    public bool IsReusable
    {
        get
        {
            return false;
        }
    }

}

DownLoadFile.ashx:

<%@ WebHandler Language="C#" Class="DownLoadFile" %>

using System;
using System.Web;
using System.Linq;
using System.Web.SessionState;
using System.IO;

public class DownLoadFile : IHttpHandler, IReadOnlySessionState
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        //获取文件路径
        string path = context.Request["FilePath"];

        if (string.IsNullOrEmpty(path)) throw new Exception("非法请求!");

        //获取文件名
        var fileName = context.Request["FileName"];
        if (string.IsNullOrEmpty(fileName)) fileName = path.Split('/').Last().ToString();

        //获取虚拟目录的物理路径。 
        path = context.Server.MapPath(path);

        fileName = fileName.Replace(" ", "");

        if (System.IO.File.Exists(path))
        {
            //删除除了本次请求的历史文件
            DeleteOldFiles(path, context.Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["temFilePath"].ToString()));
            System.IO.FileInfo fileInfo = new System.IO.FileInfo(path);
            context.Response.Clear();
            context.Response.ClearContent();
            context.Response.ClearHeaders();
            //根据不同的浏览器对文件名进行不同的编码方式
            if (context.Request.UserAgent.ToLower().IndexOf("msie", System.StringComparison.Ordinal) > -1)//IE浏览器
            {
                context.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName));
            }

            else //其他浏览器
            {
                context.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlDecode(fileName, System.Text.Encoding.UTF8));
            }

            context.Response.AddHeader("Content-Length", fileInfo.Length.ToString());
            context.Response.AddHeader("Content-Transfer-Encoding", "binary");
            context.Response.ContentType = "application/octet-stream;charset=gbk";
            context.Response.ContentEncoding = System.Text.Encoding.UTF8;
            context.Response.WriteFile(fileInfo.FullName);
            context.Response.Flush();
            context.Response.End();
        }
        else
        {
            context.Response.ContentType = "text/html";
            context.Response.Write("<script type='text/javascript'>alert('对不起,文件已不存在。');window.close();</script>");
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
    /// <summary>
    /// 删除目录下指定文件外的所有文件
    /// </summary>
    /// <param name="fileName"></param>
    /// <param name="filePath"></param>
    public void DeleteOldFiles(string fileName, string filePath)
    {
        try
        {
            DirectoryInfo di = new DirectoryInfo(filePath);
            FileInfo[] fi = di.GetFiles();//获得目录下文件
            foreach (FileInfo f in fi)
            {
                if (f.FullName != fileName)
                {
                    //判断指定文件是否存在
                    File.Delete(f.FullName);
                }
            }
        }
        catch (Exception ex)
        {
            HttpContext.Current.Response.Write(ex.Message);
        }
    }
}

代码中都有注释,就不具体详解了,有问题欢迎讨论。微笑

easyui datagrid 数据导出到Excel 两种方法将easyui datagrid 中的数据导出到Excel中,均以验证可以正常使用 立即下载

相关推荐

easyui导出excel工具

easyui datagrid 导出excel工具类 快速实现一个datagrid导出excel功能,方便页面开发人员

easyui动态控制表格字段显示、导出表格数据

通过easyui实现动态控住表格字段显示、导出表格数据

沐雨橙风ιε的博客 4305

DataGrid导出EXCEL的几个方法(WebControl)

DataGrid导出EXCEL的几个方法(WebControl)DataGrid导出EXCEL的几个方法(WebControl)DataGrid导出EXCEL的几个方法(WebControl)DataGrid导出EXCEL的几个方法(WebControl)

EasyUI DataGrid导出Excel

网上百度了好多,都那么麻烦,要么就是非要传到后台解决的,要么就是前段获取再解析,要么就是有代码不让你看的,要么就是让你花积分下载的,我哪来的积分。 导出Excel过程 引入js&amp;amp;amp;lt;script type=&amp;amp;quot;text/javascript&amp;amp;quot; src=&amp;amp;quot;jquery-easyui-1.4.1/datagrid-export.js&amp;amp;quot;&amp

LI_AINY的博客 7949

easyui-datagrid导出至Excel插件

easyui-datagrid导出至Excel插件,中文没有乱码问题。

easyui datagrid 导出到excel

easyui datagrid 导出到excel,图解

easyUI datagrid 导出excel 表格(很简单的)

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>easyui datagrid to excel</title> <link rel="stylesheet" type="text/css" href="http://www....

Matthew的博客 5063

H.264 入门篇 - 09 (帧间预测 - 参考帧列表)

短期和长期的关系和区别:在一个解码器中的 DPB(参考帧缓存)大小总是有限的,所以引入一个问题,什么样的参考帧会被保存到 DPB 中,什么样的参考帧会被移除出去,因此将分为长期和短期参考帧,所谓短期参考帧是这帧不会长期驻留在DPB中,如果参考帧缓存已满或者有其他特定的条件,那么短期参考帧就会被从DPB中移除;与之相对的长期参考帧,只要没有遇到某个指定的条件,遇到某个IDR帧, 遇到了清空整个DPB的指令等等,那么长期参考帧会长期在DPB中,不会因为有新的参考帧而被冲刷掉;(P帧是按照编码顺序)

StephenZhou 5104

easyui的datagrid导出为excel

实现easyui的datagrid导出为excel 标签: easyuidatagrid导出excel 2014-11-14 15:56 20843人阅读 评论(6) 收藏 举报  分类:   Asp.Net(24)  C#(58)  jQuery EasyUI(22)      之前天智海网络有介绍过如何实现easyui里datagrid内容的

springflower66的博客 557

2.4G跳频算法 2.4G切信道算法 (简例示意nRF52832)

2.4G跳频算法 nRF52832示例 2.4G自适应信道算法

Peter.Min 957

BMS | 从一串到几百串硬件架构简介

锂电池在生活中越来越多的方面扮演能源的角色,除了大家熟知的电动汽车行业,在一些消费类,工业类电子产品比如手机,电动自行车,电动工具中都有应用,追本溯源今天我们一起来学习下最基础的BMS架构。 1~4串架构 以S8241为代表的无通信/无固件/模拟器件 可实现过充保护、过放保护、过流/短路,参数由器件后缀代码决定;通信类手持设备供电系统;1~4节电池保护板架构 如图使用S-8241系列保护IC,一对充放电MOS管控制充放电的回路的切断和接通,系统供电来自于电芯电压,VM引脚用于检测过...

ningvay的博客 9920

jquery easyui datagrid纯js导出到excel

说明:easyui本身的datagrid不支持导出excel,查了一些资料后的结合后端代码实现导出功能的都是C#, 下面的例子使用jquery前端代码导出excel 主要的方法是使用datagrid的getData方法得到json数据,然后将json数据生成excel文件下载 因为是后端分页,只能导出当前页的内容,如果要导出全部内容,可以向后台发送json请...

current_person的博客 1万+

wflow模型hbv

毛管水的处理 😄 快速流的处理 K4是为了产生基流的 找到了令人激动的kenematic模块 😄

m0_46268055的博客 779

一句代码解决easyui datagrid导出到excel的问题

最简单easyui datagrid导出到excel的办法

丙睦的进阶之路 2613

AI应用架构师:用RAG解决大模型“幻觉”问题的客服架构设计

在当今的智能客服领域,大语言模型(LLM)凭借流畅的对话能力和强大的理解能力,逐渐取代传统规则式机器人,成为客服系统的核心。但随之而来的“幻觉”问题(即模型编造不存在的信息)却成了致命伤:比如客户问“你们的产品保修期多久”,AI客服可能会自信地回答“3年”,而实际保修期只有1年——这种错误不仅会误导客户,还可能引发投诉、退货甚至法律风险。

AI天才研究院 915

计算分子相似度(摩根分子指纹计算)

import numpy as np import pandas as pd import seaborn as sns import matplotlib as plt from rdkit.Chem import Draw from rdkit.Chem import AllChem as Chem from rdkit.Chem import PandasTools from rdkit import DataStructs data = pd.read_csv(r'47_covidLead.csv'

weixin_39417324的博客 1388

easyui datagrid标题和数据 导出excel

easyui datagrid标题和数据 导出excel

cc1314_工作、学习有感 3688

YOLOv10改进,YOLOv10添加DICAM,用于水下图像增强模块,以提高朦胧水下图像的质量、对比度和色偏

在水下环境中,成像设备会出现水浑浊、光衰减、散射和颗粒问题,导致图像质量低、对比度差和彩色图像有偏差。这给使用传统视觉技术进行水下状态监测和检查带来了巨大挑战。近年来,水下图像增强因其在提高当前计算机视觉任务在水下目标检测和分割中的性能方面发挥着关键作用而受到越来越多的关注。由于主要从自然场景构建的现有方法在提高色彩丰富度和分布方面存在性能限制,作者提出了一种新颖的基于深度学习的方法,即 Deep Inception 和 Channel-wise Attention Modules (DICAM),以提高朦

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 482

easyui datagrid导出excel

【第十四篇】easyui datagrid导出excel <a class="btn btn-app" onclick="exportExcel()"><i class="fa fa-edit"></i>导出Excel</a> 贴下面的代码之前,我想说一下 我的数据是主外键关系,有多张表关联,所以在做数据的时候,...

dong0506的博客 284

05 - matlab m_map地学绘图工具基础函数 - 设置比例尺指北针

本篇介绍下m_map中添加指北针(m_northarrow)、比例尺(m_ruler)和进行比例缩放(m_scale)的函数及其用法 。提供了 示例以便参考,罗列了 各函数可设属性。希望对绘图的你有所帮助。

weixin_43339605的博客 1947

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java datagrid导出excel_实现easyui的datagrid导出为excel的示例代码

之前有介绍过如何实现easyui里datagrid内容的打印,今天给大家介绍下如何实现datagrid内容导出为excel文件。以下为代码实现:export.jsfunction ChangeToTable(printDatagrid) {var tableString = '';var frozenColumns = printDatagrid.datagrid("options").froze...

weixin_33467061的博客 393

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MVC项目中如何用JS导出EasyUI DataGrid为Excel

在做一中考评项目的时候,遇到了这么一个需求,就是把评教后得到的老师的成绩导出为Excel。其实需求很普通,实现起来有些复杂,因为老师考评不但有固定的考核项,还有额外加分项。于是我们就抽出来了一个表,专门存放评教后的成绩,导出的时候就直接读数据库然后导出Excel。后来需求变了,要求额外加分项动态添加,也就是说一个老师有几个额外加分项是管理员导入的,这样成绩表就不能用了,因为额外加分项是不固定的。所

Coder Yasmine 6950

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

实现easyui的datagrid导出为excel

之前天智海网络有介绍过如何实现easyui里datagrid内容的打印,今天给大家介绍下如何实现datagrid内容导出为excel文件。以下为代码实现: export.js function ChangeToTable(printDatagrid) { var tableString = ''; var frozenColumns = printDatagrid.datagr

jumtre的专栏 6万+

easyui-datagrid 之导出excel

转载-easyui-datagrid 之导出excel

Darryl Cao的博客 2234
上一篇: C#模拟域登录
下一篇: IOC autofac
mx5721
博客等级 码龄17年 24粉丝 104原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值