乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 有没有谁用过<em>jqGrid导出excel</em>-CSDN论坛-jqgrid导出exce

有没有谁用过<em>jqGrid导出excel</em>-CSDN论坛-jqgrid导出exce

作者:乔山办公网日期:

返回目录:excel表格制作


1 jqGrid动态增加列,

目前还没有这样的方法

只能先卸载Grid再进行重绘,才能达到改变列的目的。

Java代码
jQuery('#grid1').GridUnload();

用这个方e5a48de588b6e799bee5baa6e997aee7ad94335法 卸载jqgrid

然后重新设置吧

Java代码
jQuery('#grid1').jqGrid({
colNames:...,
colModel:...,
...
});

2 用本地 数据 修改表格

这个必须先把数据类型改成local

Java代码
$('#lgrid-1').jqGrid().clearGridData();

$('grid-1').jqGrid('setGridParam',
{ datatype:local,
rowNum:data.length,
data:data
}
).trigger('reloadGrid', [{page:1}]);

一旦用本地数据 分页功能就不好用了,因为不会再去查后台了

3 修改多条 同时提交后台

Java代码
var savedRow = null;
var savedCol = null;
// 修正
$('#lgrid-3').setGridParam({
beforeEditCell : function(rowid, cellname, value, iRow, iCol) {
// 记录修改的表格
savedRow = iRow;
savedCol = iCol;
}
});
// 向后台发送数据前 保存表格的修改
if (savedRow && savedCol) {
jQuery('#grid-3').jqGrid('saveCell', savedRow, savedCol);
}
// 取得表格的数据 全部
var data = $('#grid-3').jqGrid().getRowData();

4 隐藏列

Java代码
jQuery('#grid_id').hideCol('somecol').trigger('reloadGrid');
显示用 showCol

5 可以多选的情况下 默认选中

Java代码
$('#list').jqGrid().setSelection(1);

如果已经被选中 则是 反选

6 数据绑定前检查

Java代码
ajaxGridOptions:
{dataFilter:
function(data,dataType){ // preprocess the data
if ( $(data).find("code").text() == 'problem' ) { // check for an error in the result
$("#list").jqGrid('GridUnload');
$("#errormsg").text( $(data).find("description").text() );
}else{
return data;
}
}
}

//导出报表
   var ExportTable= function (title, flag, tableId, isAddedFoot) {
try {
var $curTb = null;
if (flag != '') {
$curTb = $("#" + flag + "_" + tableId);
} else {
$curTb = $("#" + tableId);
}
var curTbl = $curTb[0];
var Lenc = curTbl.rows(0).cells.length;
var dateTime = $("#" + flag + "_txtBeginDateCtl").val();
var year = new Date().getYear();
var ds = null;
if (dateTime.indexOf('-') >= 0) {
ds = dateTime.split('-');
year = ds[0];
} else if (dateTime.indexOf('/') >= 0) {
ds = dateTime.split('/');
year = ds[0];
}
var tbTitle = "<table id='tbTitle'><tr><td style='font-weight:bold;text-align:left'>" + title;
tbTitle += "(" + year + "-" + curTbl.rows(0).cells(1).innerText + " 到 " + year + "-" + curTbl.rows(0).cells(Lenc - 1).innerText + ")</td></tr>";
tbTitle += "</table>";
$curTb.prepend(tbTitle);

if (isAddedFoot) {
var tbFoot = "<table id='tbColor' cellspacing='0' align='Left'><tr><td></td></td>" +
"<tr> <td style='text-align:left;' width='60'>颜色说明e68a84e8a2ade79fa5e98193365</td>" +
"<td style='background-color:#7f7f7f;text-align:center;' width='100'>时间已过</td>" +
"<td width='10'></td>" +
"<td style='background-color:#604a7b;text-align:center;' width='100'>已审查</td>" +
"<td width='10'></td>" +
"<td style='background-color:#31859c;text-align:center;' width='100'>已审核</td>" +
"<td width='10'></td>" +
"<td style='background-color:#4f6228;text-align:center;' width='100'>已审阅</td>" +
"<td width='10'></td>" +
"<td style='background-color:red;text-align:center;' width='100'>冲突数据</td>" +
"</tr> " +
"</table>";

$curTb.append(tbFoot);
}
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
sel.select();
sel.execCommand("Copy");
oSheet.Paste();

var sheetR = oSheet.UsedRange.Rows.Count;
var sheetC = oSheet.UsedRange.Columns.Count;
oSheet.Range(oSheet.Cells(1, 1), oSheet.Cells(sheetR, sheetC)).Borders.LineStyle = 1;
oSheet.Range(oSheet.Cells(1, 1), oSheet.Cells(sheetR, sheetC)).Font.Size = 9;

oSheet.Range(oSheet.Cells(1, 1), oSheet.Cells(1, sheetC)).Merge();

oSheet.Cells(2, 1).HorizontalAlignment = 2;
oSheet.Cells(2, 1).VerticalAlignment = 2;
oSheet.Cells(2, 1).Font.Bold = true;
oSheet.Cells(2, 1).Font.Size = 12;
oSheet.Rows(2 + ":" + 2).RowHeight = 30;
oSheet.Range(oSheet.Cells(2, 1), oSheet.Cells(2, sheetC)).Merge();
if (isAddedFoot) {
oSheet.Range(oSheet.Cells(sheetR - 1, 1), oSheet.Cells(sheetR - 1, sheetC)).Merge();
}
oXL.Visible = true;
$("#tbTitle").remove();
$("#tbColor").remove();

//alert("导出成功!");

} catch(e) {
alert("导出失败!");
} finally {
window.setInterval("CleanUp();", 1);
}
}

var CleanUp= function ()
{
window.clearInterval(idTmr);
CollectGarbage();
}
显示兼容问题

给你一个实现的思路,利用poi进行excel导出(至于怎么用,网上一搜一大堆,自己可以找个例子先实验一下),取出数据存到服务器,再以流的方式在浏览器端 进行弹出下载

相关阅读

关键词不能为空

ppt怎么做_excel表格制作_office365_word文档_365办公网