【问题标题】:Inserting new column and values in excel worksheet c#在excel工作表c#中插入新列和值
【发布时间】:2013-07-29 14:03:16
【问题描述】:

我正在尝试在 excel 文件的开头附加一个新列,然后向这些单元格添加值,(1,2,3,4,5...)它将用作我的主要 id数据库。我在尝试将数据插入列时遇到了麻烦,尽管我认为这很容易。这是我目前拥有的:

private void cleanUpCollection(string file)
  {
      using (SpreadsheetDocument doc =
              SpreadsheetDocument.Open(file, false))
      {
          Worksheet worksheet =
              (Worksheet)doc.WorkbookPart.GetPartById("rId1");

          Range rng = worksheet.get_Range("A1", Missing.Value);

          rng.EntireColumn.Insert(XlInsertShiftDirection.xlShiftToRight,
                                  XlInsertFormatOrigin.xlFormatFromRightOrBelow);

          WorksheetPart worksheetpart =
                 (WorksheetPart)doc.WorkbookPart.GetPartById("rId1");
          foreach (var row in worksheetpart.Rows())
          {
             // My assumption was to go down each row and insert into the first column
          }
      }



  }

任何有关如何解决此问题的帮助都会非常有帮助!谢谢!

【问题讨论】:

  • 您是否遇到任何错误?你卡在哪里了?
  • 我想知道是否有更清洁的方法来做到这一点

标签: c# excel insert worksheet-function


【解决方案1】:

试试这个:

var sheetData = workSheet.Worksheet.GetFirstChild<SheetData>();
Column firstColumn = sheetData.Elements<Column>().First();
var newCol = firstColumn.CloneNode(true) as Column;
firstColumn.InsertBeforeSelf<Column>(newCol);

foreach(Cell cell in newCol.Elements<Cell>())
{
    cell.Cellvalue = new CellValue(<Value>);
}

【讨论】:

  • 您好,感谢您的回复。它给了我一个错误,该行没有元素“Elements()”你导入了任何类吗?
  • 不,它存在于同一个命名空间中。
猜你喜欢
  • 1970-01-01
  • 2023-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多