Добавление нескольких ячеек в одну строку - PullRequest
3 голосов
/ 02 февраля 2012

Я новичок в этом, и когда я пытаюсь добавить более одной ячейки в строку, он говорит, что есть нечитаемый контент.Вот что у меня есть.

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 ]

5 голосов
/ 02 февраля 2012

Вместо "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")
        };
0 голосов
/ 12 декабря 2016

У меня была похожая проблема.Если кто-то хочет вставить ячейки в один и тот же столбец, необходимо увеличить индекс строки и ссылку на ячейку, чтобы вставить ячейку в тот же столбец.У меня ушли целые выходные, чтобы понять: 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);

Лучше использовать петлю.

...