使用c#在一个单元格中的多个格式

我想在我的工作簿中的一个单元格中具有多元格式types。 例如,我希望我的A1单元格显示“ Name: Aaron Kruger”。 当我以编程方式将名称“Aaron Kruger”添加到模板中时,会自动使其变为粗体。 所以相反,它看起来像这个“ 名字:亚伦克鲁格 ”。 所以我想在同一个单元格中使用粗体和非粗体。 也许在未来,我会想要在同一个单元格中的两个不同的文字大小。 谢谢,亚伦克鲁格

这是我创build的function:

public void inputData(int row, int column, string cellName, System.Windows.Forms.TextBox textBox, Excel.Worksheet sheet) { sheet.Cells[row, column] = sheet.get_Range(cellName, Type.Missing).Text + " " + textBox.Text; // adds value to sheet } 

这里是我通过的论点:

  inputData(5, 1, "A5", tbTagNumber, xlSheet); inputData(6, 1, "A6", tbCustomer, xlSheet); inputData(7, 1, "A5", tbDataFile, xlSheet); inputData(3, 6, "F3", tbJobNumber, xlSheet); inputData(4, 6, "F4", tbMeterSN, xlSheet); inputData(6, 6, "F6", tbPO, xlSheet); inputData(7, 6, "F7", tbFlowplate, xlSheet); inputData(4, 9, "I4", tbElectronicSN, xlSheet); 

 Range rng1 = ws.getRange("A1","E10"); for(int i=0;i<10;i++) { Range rngTst=rng.cells[i,i]; for(int j=0;j<rngTst.get_characters().count;j++) { rngTst.application.activecell.get_characters(j,j).font.color } } 

要么

 int sFirstFoundAddress = currentFind.FormulaR1C1Local.ToString().IndexOf("NOT FOR CIRCULATION "); get_Range(excel.Cells[1, 1], excel.Cells[1, dtData.Columns.Count]) .get_Characters(sFirstFoundAddress, 20).Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red); 

使用Microsoft.Office.Interop.Excel.Range它给每个字符作为字符types。 现在使用它的字体和其他属性来devise它们。

请参考这里的例子: http : //www.bloodforge.com/post/Extract-Formatted-Text-From-Excel-Cell-With-C.aspx

  Microsoft.Office.Interop.Excel.Range Range = (Microsoft.Office.Interop.Excel.Range)Cell; int TextLength = Range.Text.ToString().Length; for (int CharCount = 1; CharCount <= TextLength; CharCount++) { Microsoft.Office.Interop.Excel.Characters charToTest = Range.get_Characters(CharCount, 1); bool IsBold = (bool)charToTest.Font.Bold; bool IsItalic = (bool)charToTest.Font.Italic; // other formatting tests here } 

我logging了一个macros,它不应该很难翻译成C#:

 ActiveCell.FormulaR1C1 = "Test test" Range("A1").Select ActiveCell.FormulaR1C1 = "Test test" With ActiveCell.Characters(Start:=1, Length:=5).Font .Name = "Calibri" .FontStyle = "Regular" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = xlThemeFontMinor End With With ActiveCell.Characters(Start:=6, Length:=4).Font .Name = "Calibri" .FontStyle = "Bold" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = xlThemeFontMinor End With