0

Excel ファイルから特定の行を削除する必要があります。Excel ファイルはテンプレートであり、最終的な出力のために削除する必要がある余分な行が含まれている場合があります。ただし、セルを削除するとファイルが破損します。コードは次のように簡単です

Worksheet worksheet = worksheetPart.Worksheet;
SheetData sheetData = worksheet.GetFirstChild<SheetData>();

foreach (var row in sheetData.Elements<Row>().
Where(r => r.RowIndex.Value >= rowIndex && r.RowIndex.Value < rowIndex +  count).ToList())
{
  row.Remove();
}

または、既存のセルを空白の値に設定してみました。

Worksheet worksheet = worksheetPart.Worksheet;
SheetData sheetData = worksheet.GetFirstChild<SheetData>();
foreach (var row in sheetData.Elements<Row>().
Where(r => r.RowIndex.Value >= rowIndex && r.RowIndex.Value < rowIndex + count).ToList())
{
  IEnumerable<Cell> cells = row.Elements<Cell>().ToList();
  if (cells != null)
  {
    foreach (Cell cell in cells)
    {
      if (cell.CellValue != null && !String.IsNullOrEmpty(cell.CellValue.Text))
      {
        cell.DataType = new EnumValue<CellValues>(CellValues.String);
        cell.CellValue = new CellValue("");
      }
    }
  }
}

私のファイルは常に破損しています。

4

1 に答える 1

0

問題は、ワークシート/ワークブックを保存するための最終ストリームのサイズが一致していないことでした。

于 2012-12-19T13:22:30.637 に答える