微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ClosedXML-如何设置工作表的滚动位置?

如何解决ClosedXML-如何设置工作表的滚动位置?

我正在根据现有模板创建Excel电子表格(XLSX),并将数据集添加到其中一个工作表上的表中。 我已经能够以编程方式设置活动工作表,但是我无法设置工作表的滚动位置,以便当有人在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中修复

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。