Это интересно. Кажется, что добавили его в 4.0.0, а затем сломал ее с версией 4.0.4:
http://epplus.codeplex.com/workitem/15310
Если вы отчаянно вы можете загрузить исходный код и перейти bacck к оригинальной версии функции DeleteColumn
(в ExcelWorksheet.cs) и перекомпилировать:
public void DeleteColumn(int columnFrom, int columns)
{
lock (this)
{
ExcelColumn col = _values.GetValue(0, columnFrom) as ExcelColumn;
if (col == null)
{
var r = 0;
var c = columnFrom;
if(_values.PrevCell(ref r,ref c))
{
col = _values.GetValue(0, c) as ExcelColumn;
if(col._columnMax >= columnFrom)
{
col.ColumnMax=columnFrom-1;
}
}
}
_values.Delete(1, columnFrom, ExcelPackage.MaxRows, columns);
_types.Delete(1, columnFrom, ExcelPackage.MaxRows, columns);
_formulas.Delete(1, columnFrom, ExcelPackage.MaxRows, columns);
_styles.Delete(1, columnFrom, ExcelPackage.MaxRows, columns);
_flags.Delete(1, columnFrom, ExcelPackage.MaxRows, columns);
_commentsStore.Delete(1, columnFrom, ExcelPackage.MaxRows, columns);
_hyperLinks.Delete(1, columnFrom, ExcelPackage.MaxRows, columns);
AdjustFormulasColumn(columnFrom, columns);
FixMergedCellsColumn(columnFrom, columns, true);
var csec = new CellsStoreEnumerator<object>(_values, 0, columnFrom, 0, ExcelPackage.MaxColumns);
foreach (var column in csec)
{
if (column is ExcelColumn)
{
var c = (ExcelColumn)column;
if (c._columnMin >= columnFrom)
{
c._columnMin -= columns;
c._columnMax -= columns;
}
}
}
foreach (var tbl in Tables)
{
if (columnFrom > tbl.Address.Start.Column && columnFrom <= tbl.Address.End.Column)
{
var node = tbl.Columns[0].TopNode.ParentNode;
var ix = columnFrom - tbl.Address.Start.Column + 1;
for (int i = 0; i < columns; i++)
{
if (node.ChildNodes.Count > ix)
{
node.RemoveChild(node.ChildNodes[ix]);
}
}
tbl._cols = new ExcelTableColumnCollection(tbl);
}
tbl.Address = tbl.Address.DeleteColumn(columnFrom, columns);
}
}
}
Возможно, вам стоит подумать о том, чтобы предоставить нам фрагмент того, что вы пробовали. – hina10531
Я использовал модульное тестовое решение по адресу: http://stackoverflow.com/questions/28359165/how-to-remove-a-column-from-excel-sheet-in-epplus В частности, ws.DeleteColumn (2) просто очищает все данные в столбце 2, но не удаляет сам столбец. –