补充冻结行列的设置

This commit is contained in:
2026-07-16 16:37:45 +08:00
parent 051c913f7c
commit be07cf8238
@@ -134,6 +134,24 @@ namespace XericUI.XTable.Rendering.Component
}
}
// 读取冻结窗格
string freezePanes = ws.View.FreezePanes;
if (!string.IsNullOrEmpty(freezePanes))
{
try
{
var addr = new ExcelAddressBase(freezePanes);
int freezeRows = addr.Start.Row - 1; // 1-based → 冻结行数
int freezeCols = addr.Start.Column - 1; // 1-based → 冻结列数
if (freezeRows > 0 || freezeCols > 0)
SetFreezeCount(freezeRows, freezeCols);
}
catch
{
// 忽略解析失败的冻结地址
}
}
// 标记脏并刷新
MarkDirty(TableDirtyType.DataChanged | TableDirtyType.LayoutChanged);
RecalculateTotalSize();
@@ -199,6 +217,14 @@ namespace XericUI.XTable.Rendering.Component
ws.Row(r + 1).Height = h;
}
// 写入冻结窗格
if (m_FreezeRowCount > 0 || m_FreezeColCount > 0)
{
int freezeRow = m_FreezeRowCount + 1; // 1-based: 冻结行数的下一行
int freezeCol = m_FreezeColCount + 1; // 1-based: 冻结列数的下一列
ws.View.FreezePanes = ExcelCellBase.GetAddress(freezeRow, freezeCol);
}
// 写入单元格数据和样式
for (int r = 0; r < rows; r++)
{