using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xml.Linq;using Excel = Microsoft.Office.Interop.Excel;using Office = Microsoft.Office.Core;using Microsoft.Office.Tools.Excel;namespace ExcelAddIn2{ //此类提供了代码的入口点,并提供了对Excel对象模型的访问。 public partial class ThisAddIn { //在加载外接程序时对外接程序进行初始化 private void ThisAddIn_Startup(object sender, System.EventArgs e) { //此代码将Application_WorkbookBeforeSave事件处理程序和WorkbookBeforeSave事件连接起来。 this.Application.WorkbookBeforeSave += new Microsoft.Office.Interop.Excel.AppEvents_WorkbookBeforeSaveEventHandler(Application_WorkbookBeforeSave); } //在卸载程序是清理外接程序所使用的资源 private void ThisAddIn_Shutdown(object sender, System.EventArgs e) { } #region VSTO generated code ////// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InternalStartup() { this.Startup += new System.EventHandler(ThisAddIn_Startup); this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown); } #endregion //功能:用户保存工作簿时,该事件处理程序会将新文本添加到活动工作簿的开头 void Application_WorkbookBeforeSave(Microsoft.Office.Interop.Excel.Workbook wb, bool SaveAsUI, ref bool Cancel) { Excel.Worksheet activeWorksheet = ((Excel.Worksheet)Application.ActiveSheet); Excel.Range firstRow = activeWorksheet.get_Range("A1", missing); firstRow.EntireRow.Insert(Excel.XlInsertShiftDirection.xlShiftDown, System.Type.Missing); Excel.Range newFirstRow = activeWorksheet.get_Range("A1", missing); newFirstRow.Value2 = "This text was added by using code"; } }}