Search code examples
c#openxmlopenxml-sdk

Adding multiple Cells to a single Row


I am new to this and when I try to add more than one cell to a row it says there is unreadable content. Here is what I have.

SpreadsheetDocument ssDoc = SpreadsheetDocument.Create(saveFile, SpreadsheetDocumentType.Workbook);

// Add a WorkbookPart to the document
WorkbookPart workbookPart = ssDoc.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
// Add a WorksheetPart to theWorkbookPart
WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());

Sheets sheets = ssDoc.WorkbookPart.Workbook.AppendChild<Sheets>(new Sheets());

Sheet sheet = new Sheet()
{   Id = ssDoc.WorkbookPart.GetIdOfPart(worksheetPart),
    SheetId = 1, Name = "Sheet1"
};

sheets.Append(sheet);
Worksheet worksheet = new Worksheet();
SheetData sheetData = new SheetData();
Row row = new Row();

Cell cell = new Cell()
{
    CellReference = "A1",
    DataType = CellValues.String,
    CellValue = new CellValue("Cell1")
};

Cell cell2 = new Cell()
{
    CellReference = "A2",
    DataType = CellValues.String,
    CellValue = new CellValue("Cell2")
};
row.Append(cell);
row.Append(cell2);

sheetData.Append(row);
worksheet.Append(sheetData);
worksheetPart.Worksheet = worksheet;
// Close the document.
ssDoc.Close();

If I remove the second cell, it works as expected.


Solution

  • Instead of "A2" the cell reference should be "B1"

            SpreadSheet.Cell cell = new SpreadSheet.Cell()
            {
                CellReference = "A1",
                DataType = SpreadSheet.CellValues.String,
                CellValue = new SpreadSheet.CellValue("Cell1")                 
            };
    
            SpreadSheet.Cell cell2 = new SpreadSheet.Cell()
            {
                CellReference = "B1",
                DataType = SpreadSheet.CellValues.String,
                CellValue = new SpreadSheet.CellValue("Cell2")
            };