【问题标题】:OpenXML add new row to existing Excel file [closed]OpenXML向现有Excel文件添加新行[关闭]
【发布时间】:2011-07-12 13:54:38
【问题描述】:

我有很多 XLSX 文件,我需要在文件的最后一个之后追加一个新行。我正在使用 OpenXML,到目前为止,我知道如何打开/创建电子表格,但我在现有文件中添加新行的搜索没有返回任何结果。有什么想法吗?

【问题讨论】:

    标签: c# .net vb.net openxml openxml-sdk


    【解决方案1】:

    如果您需要做的只是在末尾添加一个空白行并且您不在乎行索引中是否已经存在行,那么以下内容应该适合您:

        public static void InsertRow(WorksheetPart worksheetPart)
        {
            SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();  
            Row lastRow = sheetData.Elements<Row>().LastOrDefault();
        
            if (lastRow != null)
            {
                sheetData.InsertAfter(new Row() { RowIndex = (lastRow.RowIndex + 1) }, lastRow); 
            }
            else
            {
                sheetData.Insert(new Row() { RowIndex = 0 });
            }
        }
    

    对于 OpenXML SDK 2.5 (Runtime) v4.0.30319 没有 Insert 方法,因此使用 InsertAt 如下:

                ...
            }
            else
            {
                sheetData.InsertAt(new Row() { RowIndex = 0 }, 0);
            }
        }
    

    【讨论】:

    • 对于 OpenXML SDK 2.5 (Runtime) v4.0.30319 没有 Insert 方法,因此使用 InsertAt 如下:sheetData.InsertAt(new Row() { RowIndex = 0 }, 0);
    • @JanisS。的评论似乎相当相关。也许它可以添加到答案中?
    • @Panzercrisis,作为答案添加,谢谢!
    • 谢谢,现在还是这样
    【解决方案2】:

    如果您使用 OpenXML SDK 2.5 (Runtime) v4.0.30319,则没有Insert 方法,但可以使用InsertAt,如下所示:

    sheetData.InsertAt(new Row() { RowIndex = 0 }, 0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      相关资源
      最近更新 更多