2011-04-14 35 views
2

我想在我的工作簿中的一個單元格中使用多種格式類型。例如,我希望我的A1單元格顯示「名稱: Aaron Kruger」。當我以編程方式將名稱「Aaron Kruger」添加到模板時,它會自動使其變爲粗體。相反,它看起來像這樣「名稱:Aaron克魯格」。所以我想在同一個單元格中使用粗體和非粗體。也許將來我會想在同一個單元格中使用兩種不同的文字大小。 謝謝, 艾倫克魯格使用c的一個單元格中的多種格式#

這裏是我創建的功能:

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

你編碼爲Excel? – Gabe 2011-04-14 18:31:02

+0

請發佈有問題的代碼。 – harpo 2011-04-14 18:31:52

+0

這裏是函數 – 2011-04-14 18:45:27

回答

0

我錄製一個宏,它不該不難把它翻譯成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 
1

使用Microsoft.Office.Interop.Excel.Range它給你每個字符爲Characters類型。現在使用它的Font和其他屬性來設計它們。

此處是指一個例子: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 

    } 
2
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); 
相關問題