Posted 15 July 2022, 2:17 am EST
Hi,
When flexGrid has both rows and columns frozen, then after export to excel, only frozen rows appear in excel.
The bug is in file @grapecity\wijmo.xlsx\index.js
_xlsx._generateSheetGlobalSetting = function(e, t, o) {
var r = t.rows && t.rows[0] && t.rows[0].cells ? t.rows[0].cells.length : 0,
l = ' xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"';
this._sheetHasNotes(e) && (l += ' xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"');
l += ' xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">';
l += '<sheetPr><outlinePr summaryBelow="0"/></sheetPr>';
l += '<dimension ref="A1' + (r > 0 ? ":" + this._numAlpha(r - 1) + t.rows.length : "") + '"/>';
l += '<sheetViews><sheetView workbookViewId="0"';
e === o.activeWorksheet && (l += ' tabSelected="1"');
var i = 0,
s = 0;
if (t.frozenPane && ((i = t.frozenPane.rows || 0) | (s = t.frozenPane.columns || 0))) {
l += ">";
l += '<pane state="frozen" activePane="' + (0 !== i && 0 !== s ? "bottomRight" : 0 !== i ? "bottomLeft" : "topRight") + '" topLeftCell="' + (this._numAlpha(s) + (i + 1)) + '" ySplit="' + i.toString() + '" xSplit="' + s.toString() + '"/>';
l += "</sheetView>"
} else l += "/>";
l += "</sheetViews>";
return l += '<sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.25"/>'
};
see line:
if (t.frozenPane && ((i = t.frozenPane.rows || 0) || (s = t.frozenPane.columns || 0)))
should be:
if (t.frozenPane && ((i = t.frozenPane.rows || 0) | (s = t.frozenPane.columns || 0)))
becouse when t.frozenPane.rows != 0 then s is not set.
Second bug is when in export options we ommited some frozen columns, eg:
grid.frozenColumns = 4;
var options =
{
includeColumnHeaders: true,
formatItem: exportFormatItem,
includeColumns: function (column) { return column.index !== 1 && column.index !== 3; }
}