将多个单元格添加到单个行

时间:2012-02-02 17:32:19

标签: c# openxml openxml-sdk

我是新手,当我尝试在一行中添加多个单元格时,它表示内容不可读。这就是我所拥有的。

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

如果删除第二个单元格,它会按预期工作。

2 个答案:

答案 0 :(得分:5)

而不是“A2”,单元格引用应为“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")
        };

答案 1 :(得分:0)

我有类似的问题。如果有人想在同一列中插入单元格,则需要增加行索引和单元格引用,以便在同一列中插入单元格。整个周末我都想弄清楚:D

 Row row2 = new Row { RowIndex = 2};
 SpreadSheet.Cell cell2 = new SpreadSheet.Cell()
    {
        CellReference = "B1",
        DataType = SpreadSheet.CellValues.String,
        CellValue = new SpreadSheet.CellValue("Cell2")
    };

row2.Append(cell2);
sheetData.Append(row);

使用循环更好。