既知の問題であるようです。あなたがソースコード
https://epplus.codeplex.com/SourceControl/latest#EPPlus/ExcelWorkbook.csにExcelWorksheet.csの現在のバージョンを見れば:
#region DeleteRow
/// <summary>
/// Delete the specified row from the worksheet.
/// </summary>
/// <param name="row">A row to be deleted</param>
public void DeleteRow(int row)
{
DeleteRow(row, 1);
}
/// <summary>
/// Delete the specified row from the worksheet.
/// </summary>
/// <param name="rowFrom">The start row</param>
/// <param name="rows">Number of rows to delete</param>
public void DeleteRow(int rowFrom, int rows)
{
CheckSheetType();
if (rowFrom < 1 || rowFrom + rows > ExcelPackage.MaxRows)
{
throw(new ArgumentException("Row out of range. Spans from 1 to " + ExcelPackage.MaxRows.ToString(CultureInfo.InvariantCulture)));
}
lock (this)
{
_values.Delete(rowFrom, 0, rows, ExcelPackage.MaxColumns);
_formulas.Delete(rowFrom, 0, rows, ExcelPackage.MaxColumns);
_flags.Delete(rowFrom, 0, rows, ExcelPackage.MaxColumns);
_commentsStore.Delete(rowFrom, 0, rows, ExcelPackage.MaxColumns);
_hyperLinks.Delete(rowFrom, 0, rows, ExcelPackage.MaxColumns);
_names.Delete(rowFrom, 0, rows, ExcelPackage.MaxColumns);
Comments.Delete(rowFrom, 0, rows, ExcelPackage.MaxColumns);
Workbook.Names.Delete(rowFrom, 0, rows, ExcelPackage.MaxColumns, n => n.Worksheet == this);
AdjustFormulasRow(rowFrom, rows);
FixMergedCellsRow(rowFrom, rows, true);
foreach (var tbl in Tables)
{
tbl.Address = tbl.Address.DeleteRow(rowFrom, rows);
}
foreach (var ptbl in PivotTables)
{
if (ptbl.Address.Start.Row > rowFrom + rows)
{
ptbl.Address = ptbl.Address.DeleteRow(rowFrom, rows);
}
}
}
}
public ExcelDataValidationCollection DataValidations
オブジェクトへの更新の言及はありません。
のCodePlex上の問題を参照
https://github.com/JanKallman/EPPlus/blob/master/EPPlus/ExcelWorksheet.cs#L2551
:(今githubの上の)現在のdevの枝を見てみると
はそれがある時はいつでも、それは次のリリースで解決される予定らしい
https://epplus.codeplex.com/workitem/15573
したがって、いくつかの場所で変更を加えなければならないように見えるので、難しい機能を再現しようとする可能性があります。またはgitから最新のものを取り出してコンパイルしようとします。
返信いただきありがとうございます!私は既に質問をする前にlibのHEAD版を参照しようとしましたが、これで問題は解決しません – oxfn