2014-02-18 51 views
0

如何使用C#在Excel單元格中創建和設置樣式?使用C#在Excel單元格中創建和設置樣式?

我想寫與ST像「月1日」作爲。 我會使用字符串格式而不是日期格式。

我試過http://msdn.microsoft.com/en-us/library/f1hh9fza.aspx,但得到了一個在當前上下文錯誤中不存在名稱'Globals'。我已經添加了程序集Microsoft.Office.Interlop.Excel。我是否錯過任何其他程序集?

Excel.Style style = Globals.ThisWorkbook.Styles.Add("NewStyle"); 
+1

你說的智能感知不會讓你這麼做的意思是什麼?有沒有錯誤?如果是,請將它們包括在您的問題中。 –

+0

@KonradGadzina名稱在當前上下文中不存在。 – user2330678

+0

這是一個VSTO項目嗎? http://msdn.microsoft.com/en-us/library/bhczd18c.aspx –

回答

2

你其實並不想改變字體的整個單元格,但您要更改我接受的單元格中的部分文本。 您仍然需要檢索單元格範圍,然後調整該範圍內的字符。這裏只是調整第一個單元格的例子。 A1。

如果你想改變整個單元格範圍是上標,它會這樣做 currentRange.Font.Superscript = true;

void Main() 
{ 
     var app = new Application(); 
     app.Visible = true; 
     var workbook = app.Workbooks.Add(1); 

     Sheets excelSheets = workbook.Worksheets; 
     string currentSheet = "Sheet1"; 
     Worksheet worksheet1 = (Worksheet)excelSheets.get_Item(currentSheet); 

     worksheet1.Cells[1, 1] = "April 1st"; 
     worksheet1.Cells[1, 2] = "April 2nd"; 
     worksheet1.Cells[1, 3] = "April 3rd"; 
     worksheet1.Cells[1, 4] = "April 4th"; 

     // fill in the starting and ending range programmatically this is just an example. 
     string startRange = "A1"; 
     string endRange = "A1"; 
     Range currentRange = worksheet1.get_Range(startRange , endRange); 

     var text = currentRange.Text.ToString(); 
     int length = text.Length; 
     int index = 0; 
     if(text.Contains("st")) 
     { 
      index =text.IndexOf("st"); 
     } 
     //The other checks for "nd", "rd", "th" obviously check to see a # precedes these. 

     if(index > 0) 
     {   
      currentRange.get_Characters(index+1, 2).Font.Superscript = true;    
     }   
} 
1

正如您所鏈接到的狀態MSDN文章:

適用於:本主題中的信息適用於文檔級 項目和應用程序級項目爲Office 2013和Office 請參閱按Office應用程序和項目類型提供的功能。

要使用Globals類,您必須創建Office項目。對於另一個參考,您可以檢查this question有關創建Office加載項:

Globals.ThisAddin.Application只能用於在VSTO外接

+0

我是否需要添加一個新的Office應用程序或VSTO項目,以便在上例中解釋的類型的excel中使用上標和下標? – user2330678

+0

@ user2951819我看到一些不帶'Globals'的上標但帶有一些外部庫的例子 - http://www.aspose.com/docs/display/cellsnet/Apply+Superscript++and++Subscript+Effects+on +字體目前我無法檢查它是否適用於基本的Office Interop。 –

+0

我無法使用它們。我將需要一些庫或mabe另一種應用程序類型。 – user2330678

相關問題