【问题标题】:How to set Excel footer with Excel-Add-In如何使用 Excel-Add-In 设置 Excel 页脚
【发布时间】:2013-01-23 03:24:06
【问题描述】:

有人告诉我编写一个 Excel-Add-In,它将特定的页脚粘贴到工作簿中的每个工作表中。

在阅读了 Excel.Interop 命名空间的文档后,我得到了这段垃圾代码:

 public partial class Ribbon1
{
    Excel.Application _excelApp;
    private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
    {
        _excelApp = new Excel.Application();
    }

    private void button1_Click(object sender, RibbonControlEventArgs e)
    {
        var filename = _excelApp.GetSaveAsFilename();
        Excel._Worksheet worksheet = (Excel._Worksheet)_excelApp.ActiveSheet;
        worksheet.PageSetup.CenterFooter = filename;
    }
}

我在固定活动工作表时遇到问题。我怎样才能真正使用这个对象? - 现在它是空的。我发现与这个主题相关的 msdn 文章简直是愚蠢的。

【问题讨论】:

    标签: c# excel-2010 excel-addins


    【解决方案1】:

    终于在VSTO找到了我要找的资料

    首先我设置了这两行:

    using Excel = Microsoft.Office.Interop.Excel;
    using Office = Microsoft.Office.Tools.Excel;
    

    作为第二步,我检查工作簿是否不为空,然后检查工作表是否不为空。如果是这种情况,请将页脚设置为文档。不漂亮,但我明天可以在办公室完善它。

    Excel.Workbook Workbook = Globals.ThisAddIn.Application.ActiveWorkbook;
            if (Workbook != null)
            {
                Office.Workbook vstoWorkbook = Globals.Factory.GetVstoObject(Workbook);
    
                Excel.Worksheet worksheet = Globals.ThisAddIn.Application.ActiveSheet;
                if (worksheet != null)
                {
                    Office.Worksheet vstoSheet = Globals.Factory.GetVstoObject(worksheet);
                    vstoSheet.PageSetup.CenterFooter = "testing the footer";
                }
            }
    

    【讨论】:

      【解决方案2】:

      一些笔记。首先,您没有活动工作表,因为您还没有创建活动表,Excel 默认不会创建活动表。

      在您的按钮单击事件处理程序中尝试(简化)代码:

      Excel.Workbook workbook = _excelApp.Workbooks.Add();
      Excel.Worksheet worksheet = workbook.Worksheets[0];
      worksheet.PageSetup.CenterFooter = filename;
      // Do remaining work here
      

      还有一行

      var filename = _excelApp.GetSaveAsFilename();
      

      只返回用户选择的文件名。它实际上并不保存文件。您需要跟进:

      workbook.SaveAs(Filename: filename);
      

      【讨论】:

      • 我不知道我是否理解正确,但如果 Excel 在打开时没有创建工作簿/工作表,则应该是一个空白屏幕。我不想创建一个新的工作簿,我想使用一个从中调用此 AddIn 的工作簿。到目前为止,点击时没有设置页脚
      • 如果您从 COM 插件调用它,则不应创建 Excel.Application 类的新实例。那可能是你的问题。需要使用OnConnection中获取的类的实例。
      • 是的,这是我最初的问题。如何使用实际打开的 Excel 实例来设置所需的页脚和属性?
      • 请发布您的插件代码的其余部分。此处显示的内容不足以完全回答您的问题。您也可以在这里查看:stackoverflow.com/questions/2020234/… 以获得一些一般性建议。
      • 这是整个自定义代码。除此之外,加载和卸载只有 2 个空的 builtIn 方法
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-09
      • 1970-01-01
      • 2019-03-16
      相关资源
      最近更新 更多