C# 如何使用OpenXML使excel工作表标题行加粗
我正在使用C# 如何使用OpenXML使excel工作表标题行加粗,c#,asp.net,openxml,C#,Asp.net,Openxml,我正在使用openXML、Asp.net和c#创建Excel工作簿,我要求所有工作表的标题行都应为粗体 WorkbookStylesPart stylesPart = workbookpart.AddNewPart<WorkbookStylesPart>(); stylesPart.Stylesheet = CreateStylesheet(); stylesPart.Stylesheet.Save(); } private stat
openXML
、Asp.net和c#创建Excel工作簿
,我要求所有工作表的标题行都应为粗体
WorkbookStylesPart stylesPart = workbookpart.AddNewPart<WorkbookStylesPart>();
stylesPart.Stylesheet = CreateStylesheet();
stylesPart.Stylesheet.Save();
}
private static Stylesheet CreateStylesheet()
{
Stylesheet ss = new Stylesheet();
Fonts fts = new Fonts();
DocumentFormat.OpenXml.Spreadsheet.Font ft = new DocumentFormat.OpenXml.Spreadsheet.Font();
Bold fbld = new Bold();
FontName ftn = new FontName();
ftn.Val = "Calibri";
DocumentFormat.OpenXml.Spreadsheet.FontSize ftsz = new DocumentFormat.OpenXml.Spreadsheet.FontSize();
ftsz.Val = 11;
ft.FontName = ftn;
ft.FontSize = ftsz;
ft.Bold = fbld;
fts.Append(ft);
fts.Count = (uint)fts.ChildElements.Count;
ss.Append(fts);
return ss;
}
WorkbookStylesPart-stylesPart=workbookpart.AddNewPart();
stylesPart.Stylesheet=CreateStylesheet();
stylesPart.Stylesheet.Save();
}
私有静态样式表CreateStylesheet()
{
样式表ss=新样式表();
字体fts=新字体();
DocumentFormat.OpenXml.Spreadsheet.Font ft=新建DocumentFormat.OpenXml.Spreadsheet.Font();
粗体fbld=新粗体();
FontName ftn=新FontName();
ftn.Val=“Calibri”;
DocumentFormat.OpenXml.Spreadsheet.FontSize ftsz=新的DocumentFormat.OpenXml.Spreadsheet.FontSize();
ftsz.Val=11;
ft.FontName=ftn;
ft.FontSize=ftsz;
ft.Bold=fbld;
附加(ft);
fts.Count=(uint)fts.ChildElements.Count;
ss.Append(fts);
返回ss;
}
它使所有单元格都变为粗体,我缺少将其应用于特定的行/单元格的代码
提前感谢,,
AR我从另一个帖子得到了答案。
private静态样式表CreateStylesheet()
{
样式表ss=新样式表();
Font font0=新字体();//默认字体
Font font1=新字体();//粗体字体
粗体=新粗体();
font1.追加(粗体);
字体字体=新字体();//
字体。追加(font0);
字体。追加(font1);
//
填充0=新填充();//默认填充
填充=新填充();//
fills.Append(fill0);
//
边框边框0=新边框();//取消边框
Borders Borders=新边框();//
borders.Append(border0);
CellFormat cellformat0=new CellFormat(){FontId=0,FillId=0,BorderId=0};//默认样式:必填|样式ID=0
CellFormat cellformat1=新CellFormat(){FontId=1};
CellFormats CellFormats=新的CellFormats();
cellformats.Append(cellformat0);
cellformats.Append(cellformat1);
附加(字体);
附加(填充);
ss.追加(边界);
附加(单元格格式);
返回ss;
}
您能否显示代码,以便我们了解根据您的要求我们可以做些什么requirement@nadeem我已经添加了代码,您可以在单元格上使用StyleIndex。看一看:这个答案没有你想象的那么重要。它只更新样式表,而不更新其他内容。所以-问题。此外,它是您引用的答案的直接副本。问题是关于样式表的。请不要在没有至少理解的情况下发布代码。虽然我同意前面的评论,但我仍然对这个答案投了更高的票,因为它让我得到了更详细的回答,而我可能没有找到其他答案。此外,作者从回答的一开始就提供了一个链接。的确,这个答案本身是不完整的。
private static Stylesheet CreateStylesheet()
{
Stylesheet ss = new Stylesheet();
Font font0 = new Font(); // Default font
Font font1 = new Font(); // Bold font
Bold bold = new Bold();
font1.Append(bold);
Fonts fonts = new Fonts(); // <APENDING Fonts>
fonts.Append(font0);
fonts.Append(font1);
// <Fills>
Fill fill0 = new Fill(); // Default fill
Fills fills = new Fills(); // <APENDING Fills>
fills.Append(fill0);
// <Borders>
Border border0 = new Border(); // Defualt border
Borders borders = new Borders(); // <APENDING Borders>
borders.Append(border0);
CellFormat cellformat0 = new CellFormat() { FontId = 0, FillId = 0, BorderId = 0 }; // Default style : Mandatory | Style ID =0
CellFormat cellformat1 = new CellFormat(){FontId = 1};
CellFormats cellformats = new CellFormats();
cellformats.Append(cellformat0);
cellformats.Append(cellformat1);
ss.Append(fonts);
ss.Append(fills);
ss.Append(borders);
ss.Append(cellformats);
return ss;
}