Excel 문서가 편집되지 않도록 하는 방법

3017 단어 Excel
첫 번째 방법은 Workbook의 Final 속성을 True로 설정하는 것입니다.이렇게 하면 전체 문서는 읽기만 할 수 있다.그러나 이렇게 하면 문서가 읽기 전용을 취소할지 여부를 알려 줍니다.
두 번째 방법은 Workbook의 BeforSave 이벤트를 편집하는 것입니다.Cancel은 BeforSave 이벤트에서 True로 설정됩니다.그러면 Excel을 닫을 때 어떤 조작이 있든지 간에 저장 단추를 눌렀는지 안 눌렀는지 알림 상자에서 문서를 저장하라고 합니다. (저장을 해야 합니다. 아무런 변동도 저장되지 않지만, 그렇지 않으면 Excel을 종료할 수 없습니다.)이 설정을 취소하는 것은 기술적인 일이다.그것으로 흰둥이를 상대하면 충분할 것 같다.
관련 코드:
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Linq;
using Microsoft.Office.Tools.Excel;
using Microsoft.VisualStudio.Tools.Applications.Runtime;
using Excel = Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;

namespace ExcelWorkbook8
{
    public partial class ThisWorkbook
    {
        private void ThisWorkbook_Startup(object sender, System.EventArgs e)
        {
            Excel.Workbook objWorkbook = Application.ActiveWorkbook;
            objWorkbook.Final = true;
        }

        private void ThisWorkbook_Shutdown(object sender, System.EventArgs e)
        {
        }

        #region VSTO Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InternalStartup()
        {
            this.Startup += new System.EventHandler(ThisWorkbook_Startup);
            this.Shutdown += new System.EventHandler(ThisWorkbook_Shutdown);
        }

        #endregion

    }
}
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Linq;
using Microsoft.Office.Tools.Excel;
using Microsoft.VisualStudio.Tools.Applications.Runtime;
using Excel = Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;

namespace ExcelWorkbook8
{
    public partial class ThisWorkbook
    {
        private void ThisWorkbook_Startup(object sender, System.EventArgs e)
        {
            Excel.Workbook objWorkbook = Application.ActiveWorkbook;
            objWorkbook.BeforeSave +=
                new Excel.WorkbookEvents_BeforeSaveEventHandler(
objWorkbook_BeforeSave);
        }

        void objWorkbook_BeforeSave(bool SaveAsUI, ref bool Cancel)
        {
            Cancel = true;
        }

        private void ThisWorkbook_Shutdown(object sender, System.EventArgs e)
        {
        }

        #region VSTO Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InternalStartup()
        {
            this.Startup += new System.EventHandler(ThisWorkbook_Startup);
            this.Shutdown += new System.EventHandler(ThisWorkbook_Shutdown);
        }

        #endregion

    }
}

좋은 웹페이지 즐겨찾기