C# 在打开的XML中设置单元格的字体.粗体和列宽

C# 在打开的XML中设置单元格的字体.粗体和列宽,c#,visual-studio,excel,openxml,C#,Visual Studio,Excel,Openxml,我一直在使用OpenXML创建一个电子表格,然后可以下载。我想设置列宽,并将标题更改为粗体。我已经使用Office.Interop.Excel完成了这项工作,但我正在努力使用这种格式。我的代码在下面,你可以看到我已经设置了字体,但无法将其分配到我的电子表格,我收到消息说无法分配到树 SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(fileName, SpreadsheetDocumentTy

我一直在使用OpenXML创建一个电子表格,然后可以下载。我想设置列宽,并将标题更改为粗体。我已经使用Office.Interop.Excel完成了这项工作,但我正在努力使用这种格式。我的代码在下面,你可以看到我已经设置了字体,但无法将其分配到我的电子表格,我收到消息说无法分配到树

        SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(fileName, SpreadsheetDocumentType.Workbook);    //Open(fileName, true);
        try
        {

            WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart();
            workbookpart.Workbook = new DocumentFormat.OpenXml.Spreadsheet.Workbook();

            WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
            worksheetPart.Worksheet = new DocumentFormat.OpenXml.Spreadsheet.Worksheet(new SheetData());

            DocumentFormat.OpenXml.Spreadsheet.Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild<DocumentFormat.OpenXml.Spreadsheet.Sheets>(new DocumentFormat.OpenXml.Spreadsheet.Sheets());
            Sheet sheet = new Sheet() { Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Models" };
            sheets.Append(sheet);

            DocumentFormat.OpenXml.Spreadsheet.Font boldFont = new DocumentFormat.OpenXml.Spreadsheet.Font();
            Bold bFontBold = new Bold();
            boldFont.Append(bFontBold);

            DocumentFormat.OpenXml.Spreadsheet.Worksheet worksheet = new DocumentFormat.OpenXml.Spreadsheet.Worksheet();
            SheetData sheetData = new SheetData();

 ........

                Row row = new Row();

                Cell cell = new Cell()
                {
                    CellReference = "A" + (intI + 1),
                    DataType = CellValues.String,
                    CellValue = new CellValue(ModelBookrowDetail[0])

                };
                row.Append(cell);

                Cell cell2 = new Cell()
                {
                    CellReference = "B" + (intI + 1),
                    DataType = CellValues.String,
                    CellValue = new CellValue(ModelBookrowDetail[1])
                };
                row.Append(cell2);

 .........

                sheetData.Append(row);
            }

            worksheet.Append(sheetData);
            worksheetPart.Worksheet = worksheet;

            spreadsheetDocument.Close();
        }
        catch
        {
            spreadsheetDocument.Close();
        }
SpreadsheetDocument SpreadsheetDocument=SpreadsheetDocument.Create(文件名,SpreadsheetDocumentType.工作簿)//打开(文件名,true);
尝试
{
WorkbookPart WorkbookPart=电子表格文档.AddWorkbookPart();
workbookpart.Workbook=newdocumentformat.OpenXml.Spreadsheet.Workbook();
WorksheetPart WorksheetPart=workbookpart.AddNewPart();
worksheetPart.Worksheet=newdocumentformat.OpenXml.Spreadsheet.Worksheet(newsheetdata());
DocumentFormat.OpenXml.Spreadsheet.Sheets=spreadsheetDocument.WorkbookPart.Workbook.AppendChild(新的DocumentFormat.OpenXml.Spreadsheet.Sheets());
Sheet Sheet=new Sheet(){Id=spreadsheetDocument.WorkbookPart.GetIdOfPart(工作表部分),SheetId=1,Name=“Models”};
附页(页);
DocumentFormat.OpenXml.Spreadsheet.Font boldFont=新的DocumentFormat.OpenXml.Spreadsheet.Font();
Bold bFontBold=新加粗();
boldFont.Append(bFontBold);
DocumentFormat.OpenXml.Spreadsheet.Worksheet工作表=新DocumentFormat.OpenXml.Spreadsheet.Worksheet();
SheetData SheetData=新的SheetData();
........
行=新行();
单元格=新单元格()
{
CellReference=“A”+(intI+1),
数据类型=CellValues.String,
CellValue=新的CellValue(ModelBookrowDetail[0])
};
行。追加(单元格);
单元格cell2=新单元格()
{
CellReference=“B”+(intI+1),
数据类型=CellValues.String,
CellValue=新的CellValue(ModelBookrowDetail[1])
};
行。追加(单元格2);
.........
sheetData.Append(行);
}
工作表。附加(表数据);
工作表部分工作表=工作表;
电子表格文档。关闭();
}
抓住
{
电子表格文档。关闭();
}

我不知道您对使用OpenXml有何看法。我可能建议调查ClosedXml。到目前为止,它为我节省了很多人力。它只有一个缺点,那就是它不像OpenXml那样管理Word文档

ClosedXml是一个更面向对象的开放源码库,与我使用OpenXml所经历的相比,它的文档记录得更为完善

您可以在此处找到ClosedXml:

祝你好运


奥利弗

我不知道你对使用OpenXml有多在行。我可能建议调查ClosedXml。到目前为止,它为我节省了很多人力。它只有一个缺点,那就是它不像OpenXml那样管理Word文档

ClosedXml是一个更面向对象的开放源码库,与我使用OpenXml所经历的相比,它的文档记录得更为完善

您可以在此处找到ClosedXml:

祝你好运

奥利弗