Изменение шрифта (Trebuchet MS, Calibari) в Excel программно C#
В настоящее время я работаю в приложении C#, которое имеет класс, который будет генерировать файл excel. Все прошло гладко. Данные, заполненные на листе excel, имеют шрифт Times New Roman. Я хотел бы изменить его на некоторые другие шрифты (Calibari). Как я могу сделать это программно?
7 ответов:
Вот как:
//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, даже если он не требует пояснений.
Из того, что я пробовал, просто меняя название шрифта, размер и т. д... on range изменяет шрифт для этого диапазона:
range.Font.Name = "Arial" range.Font.Size = 10 range.Font.Bold = true
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;
Эй, не расстраивайтесь, я делаю это и работает на меня .
Просто определите 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";
((в Excel.Диапазон)WorksheetResult.UsedRange).Шрифт.Имя = "Авангарда";
WorksheetResult - это просто ссылка на лист.
Следующее сработало для меня, когда я попытался установить шрифт приложения по умолчанию, он ничего не сделал, поэтому я смог установить имя шрифта активных строк листа, и это сработало. Также стоит отметить, что я использовал и протестировал это с помощью 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";
Comments