Удалить столбец из электронной таблицы, используя OpenXML - PullRequest
3 голосов
/ 22 февраля 2011

Я хотел удалить столбец с помощью openxml, я смог очистить содержимое ячейки, но не смог найти документацию для удаления столбца, чтобы сдвинуть другие ячейки влево при удалении столбца.Как я могу удалить столбец, используя openxml, где он сместит ячейки влево?

Ответы [ 2 ]

4 голосов
/ 22 февраля 2011

Я обнаружил, что OpenXml не может самостоятельно удалить столбец.Поэтому, чтобы решить мою проблему, я написал функцию, которая сначала удаляла содержимое ячеек в столбце, который я удаляла, а затем устанавливала ссылку на ячейку столбцов, которые располагались за столбцом, который я удалял, вверх по столбцу.

1 голос
/ 15 октября 2014

Вы можете выполнить итерацию для каждой строки и удалить нужную ячейку

private void RemoveCell(int rowIndex, int colIndex)
{
    SheetData sheetData = _worksheetPart.Worksheet.GetFirstChild<SheetData>(); // get the sheet
    Row row = sheetData.Elements<Row>().FirstOrDefault(r => r.RowIndex == rowIndex);
    if (row != null && row.Count() > colIndex)
        row.RemoveChild(row.ElementAt(colIndex));
}
...