作成日: 2023/07/10 最終更新日: 2023/07/10
文書種別
制限事項
状況
回避方法有り
詳細
コンテキストメニューで行/列全体を非表示に設定すると、UI操作で元に戻すことができません。
回避方法
以下のいずれかの方法で行/列を再表示することが可能です。
回避方法1
コンテキストメニューに「列を再表示」ボタンを追加し、列を表示する動作を組み込む
サンプルコード
spread.contextMenu.onOpenMenu = function (menuData, itemsDataForShown, hitInfo, spread) {
if (hitInfo.worksheetHitInfo && hitInfo.worksheetHitInfo.colViewportIndex === -1 && hitInfo.worksheetHitInfo.rowViewportIndex === -1) {
let sheet = spread.getActiveSheet();
let isAllColumnHidden = true;
for (let i = 0; i < sheet.getColumnCount(); i++) {
if (sheet.getColumnVisible(i)) {
isAllColumnHidden = false;
break;
}
}
if (isAllColumnHidden) {
itemsDataForShown.push(
{ text: '列を再表示', name: 'gc.spread.unhideColumns', command: 'gc.spread.contextMenu.unhideColumns' }
);
}
let isAllRowHidden = true;
for (let i = 0; i < sheet.getRowCount(); i++) {
if (sheet.getRowVisible(i)) {
isAllRowHidden = false;
break;
}
}
if (isAllRowHidden) {
itemsDataForShown.push(
{ text: '行を再表示', name: 'gc.spread.unhideRows', command: 'gc.spread.contextMenu.unhideRows' }
);
}
}
};
回避方法2
回避策2:行高/列幅変更時に、行/列が表示するようイベントを追加する
sheet.bind(GC.Spread.Sheets.Events.ColumnWidthChanged, function (e, info) {
sheet.suspendPaint();
info.colList.forEach((index) => {
sheet.setColumnVisible(index, true);
});
sheet.resumePaint();
});
sheet.bind(GC.Spread.Sheets.Events.RowHeightChanged, function (e, info) {
sheet.suspendPaint();
info.rowList.forEach((index) => {
sheet.setRowVisible(index, true);
});
sheet.resumePaint();
});