2015-04-28 41 views
3

我使用openXML,Asp.net和c#創建Excel workbook,我有一個要求,要使所有工作表的標題行變粗體。如何使用OpenXML使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; 
    } 

它使所有的細胞bold,我缺少的是提前申請這一個特定的row/cells

感謝代碼, AR

+0

可以顯示的代碼,這樣我們就可以明白exaclty我們可以根據您的要求 – BNN

+0

@nadeem我添加的代碼 – Aruns

回答

0

我從另一個崗位應答。 Create Excel file with style tag using OpenXmlWriter SAX

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; 
} 
+1

這個答案做的不是你想象的那麼重要。它只更新樣式表,沒有別的。所以 - 問題。它也是你引用的答案的直接副本。問題是關於樣式表的。沒有至少理解,請勿發佈代碼。 – Terrance00

相關問題