2016-10-04 94 views
4

我已经尝试使用如何使用的OpenXML

Bold fbld = new Bold(); 

,大胆的具体文本,但它会大胆大厅细胞使细胞的一些文字加粗。

enter image description here

在这里,在上述的图像有一些粗体文本到细胞中。

那么,它是如何可能在使用C#

回答

5

的OpenXML您需要使用的不同样式的文本块独立Run元素。您可以通过创建一个RunProperties元素并添加一个Bold元素来添加粗体。

下面的代码将在一个没有行现有的电子表格的工作(注意,我还没有添加的代码合并为只是增加了复杂性 - 如果你需要提供帮助的话,请参阅my answer here

using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(filename, true)) 
{ 
    WorkbookPart workBookPart = spreadsheetDocument.WorkbookPart; 

    WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart; 
    WorksheetPart worksheetPart = workbookPart.WorksheetParts.First(); 
    SheetData sheetData = worksheetPart.Worksheet.Elements<SheetData>().First(); 

    //create a row 
    Row row1 = new Row() { RowIndex = 1U }; 

    //create a new inline string cell 
    Cell cell = new Cell() { CellReference = "A1" }; 
    cell.DataType = CellValues.InlineString; 

    //create a run for the bold text 
    Run run1 = new Run(); 
    run1.Append(new Text("ABC")); 
    //create runproperties and append a "Bold" to them 
    RunProperties run1Properties = new RunProperties(); 
    run1Properties.Append(new Bold()); 
    //set the first runs RunProperties to the RunProperties containing the bold 
    run1.RunProperties = run1Properties; 

    //create a second run for the non-bod text 
    Run run2 = new Run(); 
    run2.Append(new Text(Environment.NewLine + "XYZ") { Space = SpaceProcessingModeValues.Preserve }); 

    //create a new inline string and append both runs 
    InlineString inlineString = new InlineString(); 
    inlineString.Append(run1); 
    inlineString.Append(run2); 

    //append the inlineString to the cell. 
    cell.Append(inlineString); 

    //append the cell to the row 
    row1.Append(cell); 

    sheetData.Append(row1); 
} 
+0

谢谢你的回答。 – Divyesh