Изменение шрифта (Trebuchet MS, Calibari) в Excel программно C # - PullRequest
5 голосов
/ 02 сентября 2010

В настоящее время я работаю в приложении C #, у которого есть класс, который будет генерировать файл Excel. Все прошло гладко. Данные, заполненные на листе Excel, имеют шрифт «Times New Roman». Я хотел бы изменить его на некоторые другие шрифты (Calibari). Как я могу сделать это программно.

Ответы [ 7 ]

15 голосов
/ 30 мая 2011

Из того, что я пробовал, просто меняя имя шрифта, размер и т. Д. ... при изменении диапазона шрифта для этого диапазона:

range.Font.Name = "Arial"
range.Font.Size = 10
range.Font.Bold = true
7 голосов
/ 12 мая 2012

Вот как:

    //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;

Сфокусируйтесь на 2-й строке снизу.Это устанавливает тип шрифта по умолчанию, но я хотел показать вам, откуда появился xlApp, даже если он говорит само за себя.

3 голосов
/ 02 сентября 2010

Вы пробовали что-то вроде этого:

new Font("Arial", 10, FontStyle.Bold);
2 голосов
/ 25 апреля 2017

следующее работало для меня, когда я пытался установить шрифт приложения по умолчанию, он ничего не делал, поэтому я смог установить имя шрифта для строк активного листа, и это сработало. Также стоит отметить, что я использовал и протестировал это с помощью 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"; 
2 голосов
/ 29 августа 2016
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;
1 голос
/ 13 июня 2014

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

WorksheetResult - это просто ссылка на лист.

1 голос
/ 20 декабря 2013

Эй, не расстраивайся, я делаю это и у меня работает.

Просто определите Font.Name и Excell Sheet, чтобы заполнить все листы везде. Код Любого Пути:

 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";
...