【问题标题】:c#, Microsoft Interop Excel , change font style for s selected rangec#, Microsoft Interop Excel , 更改所选范围的字体样式
【发布时间】:2017-12-11 02:58:33
【问题描述】:

我需要更改 Excel 工作表中某些单元格的字体样式(字体类型)。 Excel 工作表由 Microsoft.Office.Interop.Excel 生成

我想将 B3 更改为 B100 范围为 Arial 字体类型。 这是我的代码

Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;

app.Visible = true;
worksheet = workbook.Sheets["Sheet1"];
worksheet = workbook.ActiveSheet;
worksheet.Name = "Exported from gridview";
worksheet.get_Range("B3", "B100").Cells.Font.FontStyle = "Arial";

for (int i = 1; i < records_datagridview.Columns.Count + 1; i++)
{
   worksheet.Cells[1, i] = records_datagridview.Columns[i - 1].HeaderText;
}

for (int i = 0; i < records_datagridview.Rows.Count; i++)
{
   for (int j = 0; j < records_datagridview.Columns.Count; j++)
   {
      worksheet.Cells[i + 2, j + 1] = records_datagridview.Rows[i].Cells[j].Value.ToString();
   }
}

String file_path = fbd.SelectedPath + "/records_sheet_" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + "_.xlsx";

workbook.SaveAs(file_path, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,
                Type.Missing, Type.Missing, Type.Missing, Type.Missing);

app.Quit();

我用过

worksheet.get_Range("B3", "B4").Cells.Font.FontStyle = "Arial";

但它不起作用 谁能帮我解决这个问题

【问题讨论】:

  • “但它不起作用”是一种可怕的描述方式,或者更好的是不描述正在发生的事情。使用 worksheet.get_Range("B3", "B4").Cells.Font.Name = "Arial";

标签: c# .net excel-interop font-style


【解决方案1】:

把你的代码挂到这个:

worksheet.get_Range("B3", "B4").Cells.Font.Name = "Arial";

提示:在许多情况下,您可以自己回答此类问题:只需录制 Excel 宏并查看生成的代码。即使它是 VBA,而不是 C#,您也经常会看到您需要的东西。

【讨论】:

    【解决方案2】:

    你需要先定义样式。

    Excel.Style style = workbook.Styles.Add("NewStyle");
    style.Font.Name = "Arial";
    

    然后您需要定义单元格范围并应用新样式。

    Excel.Range rangeStyles = app.get_Range("B3", "B100");
    rangeStyles.Style = "NewStyle";
    

    有关更多信息,请查看 Microsoft 文档页面 https://msdn.microsoft.com/en-us/library/f1hh9fza.aspx

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多