我想将新行/列插入到工作表中,并应用插入的行/列的样式(背景颜色/边框等)。
这就是我添加新行的方式:
xlsSheet.InsertRow(18, RowCount);
然后我想将“基”行的样式复制/应用到新插入的行:
for (int i = 0; i < RowCount; i++)
{
xlsSheet.Cells[16, 1, 16, xlsSheet.Dimension.End.Column].Copy(xlsSheet.Cells[16 + i + 1, 1]);
}
但此代码不会复制/应用“基本”行的样式。目前,我有一个互操作的解决方法,但这与 epplus 相比需要数年时间。 :-/
在4.0.4代码中:
if (copyStylesFromRow > 0)
{
var cseS = new CellsStoreEnumerator<int>(_styles, copyStylesFromRow, 0, copyStylesFromRow, ExcelPackage.MaxColumns); //Fixes issue 15068 , 15090
while(cseS.Next())
{
for (var r = 0; r < rows; r++)
{
_styles.SetValue(rowFrom + r, cseS.Column, cseS.Value);
}
}
}
它使用 copyStylesFromRow 值,但由于代码顺序,它使用新的行号。因此,如果您想从第 3 行开始插入 4 行:
workbook.Worksheets[1].InsertRow(3,4,6);
这会从第 3 行开始插入 4 个新行,因为包含第 3 行,所以您必须指向第 6 行。这是一个错误,但您可以解释它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)