如何使用OpenXML SDK 2.0添加一行到Excel?

我是OpenXML的新手,并且一直在添加一行新的行(含有单元格数据),并在A1中添加了一个新的单元格数据行。

所以基本上我想在“行1”列“A1”和“testing”在“行2”列“A1”中插入“testing”。

这是我的代码,它看起来很好,并创build文件,但Excel不打开它。 我在OpenOffice中打开它,它只显示一行而不是两行。 当我注释到追加row2到sheetdata,它工作正常。 所以我想我是错误地创build第二行。 任何帮助表示赞赏。 先谢谢你。 这里是代码:

using (SpreadsheetDocument spreadSheetDocument = SpreadsheetDocument.Create("generated.xlsx", SpreadsheetDocumentType.Workbook)) { //Add a WorkbookPart to the document. WorkbookPart workbookpart = spreadSheetDocument.AddWorkbookPart(); //create new workbook workbookpart.Workbook = new Workbook(); // Add a WorksheetPart to the WorkbookPart. WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>(); //instantiate new worksheet with new sheetdata worksheetPart.Worksheet = new Worksheet(new SheetData()); //Add Sheets to the Workbook. Sheets sheets = spreadSheetDocument.WorkbookPart.Workbook. AppendChild<Sheets>(new Sheets()); DocumentFormat.OpenXml.UInt32Value sheetId = 1; //Append a new worksheet and associate it with the workbook. Sheet sheet = new Sheet(); sheet.Id = spreadSheetDocument.WorkbookPart.GetIdOfPart(worksheetPart); sheet.SheetId = sheetId; sheet.Name = new StringValue("test_" + 1); sheets.Append(sheet); //Get the sheetData cell table. SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>(); UInt32Value rowindex = 1; UInt32Value rowindex2 = 2; // Add a row to the cell table. Row row = new Row() { RowIndex = rowindex }; Cell newCell = new Cell(); newCell.DataType = CellValues.InlineString; newCell.CellReference = "A1"; InlineString inlineString = new InlineString(); Text t = new Text(); t.Text = "test"; inlineString.Append(t); newCell.AppendChild(inlineString); row.AppendChild(newCell); sheetData.AppendChild(row); rowindex++; // Add a row to the cell table. Row row2 = new Row() { RowIndex = rowindex2 }; Cell newCell2 = new Cell(); newCell2.DataType = CellValues.InlineString; newCell2.CellReference = "A1"; InlineString inlineString2 = new InlineString(); Text t2 = new Text(); t2.Text = "test"; inlineString2.Append(t2); newCell2.AppendChild(inlineString2); row2.AppendChild(newCell2); sheetData.AppendChild(row2); workbookpart.Workbook.Save(); // Close the document. spreadSheetDocument.Close(); MessageBox.Show("Success"); }