c# - OpenXML 向现有 Excel 文件添加新行

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

<分区>

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

最佳答案

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

    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);
        }
    }

关于c# - OpenXML 向现有 Excel 文件添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6665307/

相关文章:

c# - 从 PictureBox 上传图片到服务器

c# - 引发订阅的异步事件后,对象会自动处理吗?

c# - 如何使用 System.Text.Json 将 Stack<T> 序列化为 JSON,而不反转堆栈?

c# - 如何在 .NET 代码分析器中获取解决方案路径

c# - 仅在成功提交的窗口内观察更改

css - 以编程方式添加样式表 ASP.NET (VB)

vb.net - 跨线程操作无效

c# - 使用 SSH.Net 将 GzipStream 上传到 SFTP

.net - .NET 4.0 代码可以与 .NET 2.0 代码互操作吗?

mysql - 尝试执行不包含指定表达式 'StaffDetails.StaffID' 作为聚合函数一部分的查询