ClosedXML - 如何设置 sheet 的滚动位置?
ClosedXML - How do I set the scroll position of a sheet?
我正在从现有模板创建一个 Excel spreadsheet (XLSX),并将数据集添加到其中一个作品 table 的 sheet 中。
我已经能够以编程方式设置活动 sheet,但我无法设置 sheet 的滚动位置,以便在有人打开传播时显示最后一行数据 [=23] =] 在 Excel.
我添加了 5000 多行,但是当有人在 Excel 中打开文件时,滚动位置是保存原始模板时的位置。我设置为选中的单元格确实被选中,但它不在屏幕上。
这是我的代码:
using (var workbook = new XLWorkbook(fileInfo.FullName))
{
workbook.Properties.Author = _configuration.GetSection("ExcelAuthor").Value;
var workSheet = workbook.Worksheet(_configuration.GetSection("ExcelWorkSheetName").Value);
var table = workSheet.Table(_configuration.GetSection("ExcelTableName").Value);
var range = table.ReplaceData(data.Tables[0]);
//Set the sheet as the active sheet
foreach (var sheet in workbook.Worksheets)
{
var isCurrentSheet = sheet.Equals(workSheet);
sheet.SetTabActive(isCurrentSheet);
sheet.SetTabSelected(isCurrentSheet);
}
//workSheet.ActiveCell = range.LastCell();
workSheet.Cell(range.LastCell().Address).Select();
//range.LastCell().Select();
//range.LastCell().SetActive();
path = string.Format("{0} - {1}.xlsx", _configuration.GetSection("FileNamePrefix").Value, DateTime.Now.ToString("yyyy-MM-dd"));
path = string.Format("{0}\{1}", _configuration.GetSection("OutputFolder").Value.TrimEnd(new[] { '/', '\' }), path);
workbook.SaveAs(path);
};
我不确定是否可以设置确切的滚动位置,但您可以设置当前选定的单元格。
var wb = new XLWorkbook();
var wsActiveCell = wb.AddWorksheet("Set Active Cell");
wsActiveCell.Cell("B2000").SetActive();
参考:https://github.com/ClosedXML/ClosedXML/wiki/Selecting-Cells-and-Ranges
我提交了拉取请求,这已在 https://github.com/ClosedXML/ClosedXML/pull/1561
中修复
我正在从现有模板创建一个 Excel spreadsheet (XLSX),并将数据集添加到其中一个作品 table 的 sheet 中。 我已经能够以编程方式设置活动 sheet,但我无法设置 sheet 的滚动位置,以便在有人打开传播时显示最后一行数据 [=23] =] 在 Excel.
我添加了 5000 多行,但是当有人在 Excel 中打开文件时,滚动位置是保存原始模板时的位置。我设置为选中的单元格确实被选中,但它不在屏幕上。
这是我的代码:
using (var workbook = new XLWorkbook(fileInfo.FullName))
{
workbook.Properties.Author = _configuration.GetSection("ExcelAuthor").Value;
var workSheet = workbook.Worksheet(_configuration.GetSection("ExcelWorkSheetName").Value);
var table = workSheet.Table(_configuration.GetSection("ExcelTableName").Value);
var range = table.ReplaceData(data.Tables[0]);
//Set the sheet as the active sheet
foreach (var sheet in workbook.Worksheets)
{
var isCurrentSheet = sheet.Equals(workSheet);
sheet.SetTabActive(isCurrentSheet);
sheet.SetTabSelected(isCurrentSheet);
}
//workSheet.ActiveCell = range.LastCell();
workSheet.Cell(range.LastCell().Address).Select();
//range.LastCell().Select();
//range.LastCell().SetActive();
path = string.Format("{0} - {1}.xlsx", _configuration.GetSection("FileNamePrefix").Value, DateTime.Now.ToString("yyyy-MM-dd"));
path = string.Format("{0}\{1}", _configuration.GetSection("OutputFolder").Value.TrimEnd(new[] { '/', '\' }), path);
workbook.SaveAs(path);
};
我不确定是否可以设置确切的滚动位置,但您可以设置当前选定的单元格。
var wb = new XLWorkbook();
var wsActiveCell = wb.AddWorksheet("Set Active Cell");
wsActiveCell.Cell("B2000").SetActive();
参考:https://github.com/ClosedXML/ClosedXML/wiki/Selecting-Cells-and-Ranges
我提交了拉取请求,这已在 https://github.com/ClosedXML/ClosedXML/pull/1561
中修复