Je travaille actuellement dans une application C# qui a une classe qui va générer un fichier Excel. Tout s'est bien passé. Les données sur la feuille Excel ont la police 'Times New Roman'. Je voudrais le changer à d'autres polices (Calibari). Comment puis-je faire cela par programme.Modification de la police (Trebuchet MS, Calibari) dans Excel par programmation C#
Répondre
Voici comment:
//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;
Concentrez-vous sur la deuxième ligne à partir du bas. Cela définit le type de police par défaut, mais je voulais vous montrer d'où vient xlApp, même si c'est explicite.
Avez-vous essayé quelque chose comme ceci:
new Font("Arial", 10, FontStyle.Bold);
D'après ce que j'ai essayé, en changeant simplement le nom de la police, la taille, etc ... sur la gamme change la police pour cette gamme:
range.Font.Name = "Arial"
range.Font.Size = 10
range.Font.Bold = true
Hey Ne vous fâchez pas je le fais et travaille pour moi.
Il suffit de définir Font.Name et excell feuille remplir toute la feuille utilisation partout. Tout code Way est:
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.Range) WorksheetResult.UsedRange) .Font.Name = "Avant Garde";
WorksheetResult est juste une référence de feuille.
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;
ce qui suit travaillé pour moi, quand j'ai essayé de placer la police de l'application par défaut, il n'a rien fait pour que j'ai pu définir le nom de la police des lignes de feuille active et cela a fonctionné. A noter également que j'ai utilisé et testé cela en utilisant la version 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";
Cela a fonctionné parfaitement pour moi en utilisant la bibliothèque d'objets Microsoft Excel 14.0. – pennyrave