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