如何使用Excel加载项设置Excel页脚
本文关键字:Excel 页脚 设置 加载项 何使用 | 更新日期: 2023-09-27 17:55:17
我被告知要编写一个Excel加载项,将特定的页脚粘贴到工作簿中的每个工作表中。
在阅读了 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 文章非常愚蠢。
我终于找到了我要找的信息: VSTO
首先,我设置了这 2 行:
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";
}
}
几点注意事项。 首先,您没有活动工作表,因为您尚未创建一个活动工作表,默认情况下 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);