js代码导出grid中的数据成excel

xujiawei0726 2012-11-26 10:27:17
后台返还给我的数据格式是
var data={rows:[{ "id":"1",data:["金华中新",891,94.2,119,30,149,79.9,6,2,8,75.0,0,0,0,1114,144]},
{ "id":"2",data:["金华综合",862,105,9,81.9,143,15,158,90.5,3,0,3,1103,141,1244]},
{ "id":"3",data:["义乌车辆",1216,114,1332,135,5,140,96.4,1,0,1,100,125,1861,93.3]}
]};(标题是在其他地方设置的)
然后我是用dhtmx生成了一个grid,我想通过js把他导出成excel
网上有代码,但是我看不懂,没说明。。。。就大神帮忙,并附带下说明,还有需要那些插件
...全文
250 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyanshan 2012-11-26
  • 打赏
  • 举报
回复
http://www.cnblogs.com/tonyqus/archive/2009/04/12/1434209.html 给你一个链接学学教程。.net环境下的。npoi是很简单的易学的,别人不可能手把手教你,只能给你解决的方向。
xujiawei0726 2012-11-26
  • 打赏
  • 举报
回复
还是看不懂我是新手。。。
wyanshan 2012-11-26
  • 打赏
  • 举报
回复
这个建议使用NPOI插件,非常好用!呵呵,我正在研究,直接把dll放入项目,然后引用,后台生成,显示客户端下载即可。代码: using NPOI.HSSF.UserModel; using NPOI.HPSF; using System.IO;
    public void GenerateExcel(string fileName,string deptID,string contentType) {
        DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
        SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
        si.Subject = "One NPOI example";
        HSSFWorkbook WB = new HSSFWorkbook();
        HSSFCellStyle lo_Style = (HSSFCellStyle)WB.CreateCellStyle();
        lo_Style.DataFormat = HSSFDataFormat.GetBuiltinFormat("@");
        
        WB.DocumentSummaryInformation = dsi;
        WB.SummaryInformation = si;
        dsi.Company = "NPIO Team";
        HSSFSheet currentsheet = (HSSFSheet)WB.CreateSheet("sheet1");
        
        WB.CreateSheet("Sheet2");
        WB.CreateSheet("Sheet3");
       
        
        
        DataTable dt = csm.GetDataTableByStoreprocedureStr("StoreProcedure:" + contentType + ";DeptID:" + deptID);
        HSSFRow title = (HSSFRow)currentsheet.CreateRow(0);
        for (int s = 0; s < dt.Columns.Count; s++)
        { 
            HSSFCell celltitle = (HSSFCell)title.CreateCell(s);
            celltitle.SetCellValue(dt.Columns[s].ColumnName);
        }
            
            //cell.SetCellValue(dt.Rows.Count.ToString());
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                HSSFRow row = (HSSFRow)currentsheet.CreateRow(i+1);
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    HSSFCell cell = (HSSFCell)row.CreateCell(j);
                    cell.SetCellValue(dt.Rows[i][j].ToString());
                }
            }
        
        FileStream file = new FileStream("d:/TempFiles/"+fileName, FileMode.Create);
        WB.Write(file);
        file.Close();
    }
生成完毕,客户端html注意下载方式。html页面弄一个iframe,生成完毕更新iframe的src即可,
xujiawei0726 2012-11-26
  • 打赏
  • 举报
回复
主要是没找到教程,看不懂属性了,现在有了,
Kendo UI框架提供了强大的Excel导出功能,通过Grid的saveAsExcel能方便地导出Grid数据,而且格式美观大方,使用起来也非常方便。但是在实际使用不是很理想,主要有以下两个问题: 1. 导出的列数据是原始值 Kendo UI默认导出的是该列的value值,及查出来的值,有时候我们会用template渲染一下导出的列,比如将“Y”显示“是”,把“N”显示“否”。而Kendo UI导出的却是Y/N这种只有程序员看得懂的数据库标识,显然不是我们需要的,这种情况非常常见。 2. 不能灵活控制可导出的列 Kendo UI的Excel导出主要看两点,一是该列(column)是field字段,而不是自定义的name;二是该列不是隐藏的(hidden:true)。这样我们无法灵活导出我们需要的列。 为了解决上面两个问题,我查看了Kendo UI的源代码,提取并改进了源代码。主要更改点及使用方法请看下面源代码。主要针对以上两点做了更改,只需要在grid定义columns时加上isExport或exportTemplate即可: 在导出数据,先看该列有没有自定义exportTemplate(),没有则看Kendo UI自带的template(),再没有才会导出查出来的值。 判断是否导出该列不再看hidden属性,而是看列的isExport属性,如果为false则不导出,其它情况一律导出该列。 经过这两个更改,基本可以应对所有业务场景,可以方便快捷地开发了! 但要注意,Kendo UI自带的导出功能无法应用于导出大量数据,似乎是浏览器的jvm溢出了,建议超过5万条的数据导出还是老老实实写后台导出功能吧。。

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧