以编程方式在Excel中更改字体(Trebuchet MS,Calibari)C#

时间:2010-09-02 13:41:15

标签: c# office-interop

我目前在C#应用程序中工作,该应用程序有一个将生成excel文件的类。一切顺利。 excel表上填充的数据有'Times New Roman'字体。我想将其更改为其他一些字体(Calibari)。我怎么能以编程方式做到这一点。

8 个答案:

答案 0 :(得分:15)

根据我的尝试,只需更改字体名称,大小等......在范围内更改该范围的字体:

range.Font.Name = "Arial"
range.Font.Size = 10
range.Font.Bold = true

答案 1 :(得分:6)

以下是:

    //Declare Excel Interop variables
    Microsoft.Office.Interop.Excel.Application xlApp;
    Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
    Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;

    //Initialize variables
    xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();
    xlWorkBook = xlApp.Workbooks.Add(misValue);
    xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

    //Set global attributes
    xlApp.StandardFont = "Arial Narrow";
    xlApp.StandardFontSize = 10;

从底部开始关注第二行。这设置了默认字体类型,但我想告诉你xlApp来自哪里,即使它是自我解释的。

答案 2 :(得分:3)

你有没有试过这样的事情:

new Font("Arial", 10, FontStyle.Bold);

答案 3 :(得分:2)

var range = worksheet.get_Range(string.Format("{0}:{0}", startRowIndex, Type.Missing));
            range = range.EntireRow;
            range.Style.Font.Name = "Arial";
            range.Style.Font.Bold = false;
            range.Style.Font.Size = 12;

答案 4 :(得分:2)

以下对我有用,当我尝试设置默认的应用程序字体时,它什么也没做,所以我能够设置活动工作表行的字体名称并且它有效。另外值得注意的是我使用Excel Interop版本12

进行了测试
Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
//Create\Add workbook object
Excel.Workbooks workBooks = excelApp.Workbooks;
//Excel.Workbook
Excel.Workbook workBook = workBooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
//use worksheet object 
Excel.Worksheet workSheet = (Excel.Worksheet)excelApp.ActiveSheet;
//set default font
workSheet.Rows.Font.Name = "Arial"; 

答案 5 :(得分:1)

嘿,不要不高兴,我这样做并为我工作。

只需定义Font.Name和excell表填充所有表格在任何地方使用。 任何方式代码是:

 workSheet.Range[workSheet.Cells[1, tempCount], workSheet.Cells[1, tempCount + mergeCount-1]].Merge();
                workSheet.Range[workSheet.Cells[1, tempCount], workSheet.Cells[1, tempCount + mergeCount - 1]].Interior.Color = ColorTranslator.ToOle(Color.FromArgb(23,65,59));
                workSheet.Range[workSheet.Cells[1, tempCount], workSheet.Cells[1, tempCount + mergeCount - 1]].Borders.LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
                workSheet.Range[workSheet.Cells[1, tempCount], workSheet.Cells[1, tempCount + mergeCount - 1]].Style.Font.Name = "Arial Narrow";

答案 6 :(得分:1)

((Excel.Range)WorksheetResult.UsedRange).Font.Name =“Avant Garde”;

WorksheetResult只是一个工作表参考。

答案 7 :(得分:0)

通过我自己的类似问题找到了该线程。我有一个小选择器框,当单击一个单元格时,需要将唯一字体的符号粘贴到所选的excel单元格中。这是我的操作方式:

string selectedItem = arrayOfSymbols[tableLayoutPanel1.GetRow((Control)sender), tableLayoutPanel1.GetColumn((Control)sender)];

Excel.Worksheet ws = Globals.ThisAddIn.Application.ActiveSheet;
Excel.Range cell = Globals.ThisAddIn.Application.ActiveCell;

ws.Cells[cell.Row, cell.Column].Font.Name = "My Custom Font";
ws.Cells[cell.Row, cell.Column] = selectedItem;